คุณรู้วิธีใช้ ADODB.stream เพื่อสร้างรหัสการตรวจสอบสีหรือไม่? วันนี้บรรณาธิการของช่องเทคโนโลยี Foxin แสดงให้เห็นถึงวิธีการดำเนินงานสำหรับคุณในตัวอย่าง ฉันหวังว่ามันจะเป็นประโยชน์กับคุณที่เรียนรู้ความรู้นี้
การคัดลอกรหัสมีดังนี้:response.buffer = true
Numcode
ฟังก์ชัน numcode ()
Response.expires = -1
Response.addheader "Pragma", "No-Cache"
Response.addheader "Cache-ctrol", "No-cache"
Dim znum, i, j
Dim Ados, Ados1
ตัวจับเวลาแบบสุ่ม
สร้างตัวเลขสี่หลักสุ่ม:
znum = cint (8999*rnd+1000)
ผ่านเซสชัน
เซสชัน ("getCode") = znum
สิ่งนี้สำหรับลูปคือการใส่หมายเลขสุ่มลงในอาร์เรย์ด้วยตัวห้อย 3 ซึ่งสะดวกสำหรับการให้การแปลงอาร์เรย์ที่ตามมา
Dim Zimg (3), NSTR
NSTR = CSTR (ZNUM)
สำหรับ i = 0 ถึง 3
zimg (i) = cint (mid (nstr, i+1,1)))
ต่อไป
สลัว pos
'กำหนดวัตถุไบนารี ADODB.Stream สองรายการสำหรับการทำงานของข้อมูลภาพ:
ตั้งค่า ADOS = Server.CreateObject ("ADODB.STREAM"))
Ados.Mode = 3
Ados.type = 1
Ados.open
ตั้งค่า ados1 = server.createObject ("adodb.stream")
ADOS1.MODE = 3
Ados1.type = 1
ADOS1.OPEN
'โหลด 0 ~ 9 ข้อมูลดิจิตอล 10x100, ข้อมูลอาร์เรย์ GBR, แต่ละ 320 ไบต์, 10 หลัก 3200 ไบต์
'BGR หนึ่งจุด 10x10 คะแนนหนึ่งหมายเลขหนึ่งจุดสามไบต์ (8 บิตในไบนารี, 00 ~ ff ในเลขฐานสิบหก)
'แถวของ 10 จุด 30 ไบต์ + จุดสิ้นสุดของเครื่องหมายเส้น 00 00 2 ไบต์ 32 ไบต์ดังนั้นภาพ 10x100 ที่มีความกว้างเล็กกว่าความยาวของแต่ละหลัก 10x10 คือ 320 ไบต์
'หากความยาวมีขนาดใหญ่กว่าความกว้างจะไม่มีเครื่องหมายสิ้นสุดของบรรทัด 0000 โดยตรง 300 ไบต์
นี่คือรายละเอียดข้อมูล BMP 24 บิต
'สำหรับหัวมันก็ง่ายมากรวมถึงความยาวและความกว้างการทำเครื่องหมายเริ่มต้นภาพ ฯลฯ ~~ มันเป็นเพียง 54 ไบต์ซับซ้อนน้อยกว่า JPG หรืออะไรบางอย่าง
Ados.loadFromFile (Server.Mappath ("body.fix")))
ADOS1.WRITE ADOS.READ (1280)
'ครั้งแรกสำหรับลูปแยกตัวเลขสี่ตัวที่สอดคล้องกันจากอาร์เรย์ดิจิตอล 10x100 ตามลำดับของตัวเลขสุ่มที่สร้างขึ้น
แต่อาร์เรย์แนวตั้งของตัวเลข
สำหรับ i = 0 ถึง 3
Ados.Position = (9-zimg (i))*320
Ados1.position = i*320
ADOS1.WRITE ADOS.READ (320)
ต่อไป
'ล้างข้อมูลของ ADO ที่ใช้แล้วและโทรในไฟล์ส่วนหัวที่แทนที่ส่วนหัวภาพใหม่ 54 ไบต์
Ados.loadFromFile (Server.Mappath ("head.fix"))))))))))))))))
pos = lenb (ados.read ())
Ados.position = pos 'ระบุตำแหน่ง POS และคุณสามารถชดเชยตำแหน่งได้ 54 ไบต์เพื่อเพิ่มข้อมูลกราฟิก
ที่สองสำหรับลูปทำการแปลงอาร์เรย์ของตัวเลขแปลงบล็อกแนวตั้งเป็นบล็อกแนวนอน
วิธีการคือการแยก 4 ครั้งของ 320 ไบต์และเขียนลงในวัตถุ ADOS จากนั้นแยกข้อมูลภาพที่ชดเชยจากบรรทัดที่สอง
30 ไบต์เป็นเพราะความกว้างของ BMP สูงกว่ายาวโดยไม่มีเครื่องหมายปลาย 00 00 00
สำหรับ i = 0 ถึง 9 ขั้นตอนที่ 1
สำหรับ j = 0 ถึง 3
Ados1.position = i*32+J*320
Ados.position = pos+30*j+i*120
ADOS.WRITE ADOS1.READ (30)
ต่อไป
ต่อไป
Ados.Position = 0
Response.BinaryWrite ส่งข้อมูลรูปภาพโดยตรงไปยังไคลเอนต์
Response.contentType = "image/bmp"
Response.binaryWrite Ados.read ()
Ados.Close: ตั้งค่า ADOS = ไม่มีอะไร
ADOS1.CLOSE: SET ADOS1 = ไม่มีอะไร
ฟังก์ชันสิ้นสุด
บทความข้างต้นเป็นตัวแก้ไขของช่องทางเทคโนโลยีใหม่ที่รวบรวมโดยคุณโดยใช้ ADODB.Stream เพื่อสร้างรหัสการตรวจสอบสี ฉันเชื่อว่าทุกคนได้เรียนรู้วิธีการดำเนินงานเหล่านี้ ข้อผิดพลาดเครือข่ายช่องเทคโนโลยีใหม่จะยังคงจัดระเบียบความเชี่ยวชาญด้านเทคนิคสำหรับคุณ ฉันหวังว่าคุณจะให้ความสนใจกับเราต่อไป!