Tahukah Anda cara menggunakan adodb.stream untuk membuat kode verifikasi warna? Hari ini, editor saluran teknologi Foxin menunjukkan metode operasi untuk Anda dalam sebuah contoh. Saya harap ini akan membantu Anda yang mempelajari pengetahuan ini.
Salinan kode adalah sebagai berikut:Response.buffer = true
NumCode
Fungsi numcode ()
Response.expires = -1
Response.addheader "pragma", "no-cache"
Response.addheader "cache-ctrol", "no-cache"
redup znum, i, j
Dim Ados, ADOS1
Mengacak pengatur waktu
Menghasilkan angka empat digit acak:
znum = cint (8999*rnd+1000)
Lulus ke sesi
Sesi ("getCode") = znum
Ini untuk loop adalah untuk memasukkan angka acak ke dalam array dengan subskrip 3, yang nyaman untuk memberikan transformasi array berikutnya
redup zimg (3), nstr
Nstr = cstr (znum)
Untuk i = 0 hingga 3
zimg (i) = cint (mid (nstr, i+1,1))
Berikutnya
redup pos
'Tentukan dua objek biner ADODB.Stream untuk operasi data gambar:
Setel ados = server.CreateObject ("adodb.stream")
Ados.mode = 3
Ados.type = 1
Ados.open
Setel ados1 = server.CreateObject ("adodb.stream")
Ados1.mode = 3
ADOS1.Type = 1
Ados1.open
'Muat 0 ~ 9 Data Digital 10x100, Data Array GBR, masing -masing 320 byte, 10 digit 3200 byte
'Bgr satu titik, 10x10 poin satu angka, satu poin tiga byte (8 bit dalam biner, 00 ~ ff dalam heksadesimal)
'Baris 10 titik 30 byte + ujung tanda garis 00 00 00 2 byte 32 byte, jadi gambar 10x100 dengan lebar lebih kecil dari panjang setiap digit 10x10 adalah 320 byte
'Jika panjangnya lebih besar dari lebarnya, tidak akan ada tanda ujung garis 0000, langsung 300 byte
Ini adalah detail data BMP 24bit
'Sedangkan untuk kepala, ini juga sangat sederhana, termasuk panjang dan lebar, tanda mulai gambar, dll. ~~ Ini hanya 54 byte, jauh lebih tidak rumit dari jpg atau sesuatu
Ados.loadFromFile (server.mappath ("body.fix"))
Ados1.write ados.read (1280)
'Yang pertama untuk mengekstrak loop, empat angka yang sesuai dari array digital 10x100 dalam urutan angka acak yang dihasilkan
Tapi serangkaian angka vertikal
untuk i = 0 hingga 3
Ados.position = (9-zimg (i))*320
Ados1.position = i*320
Ados1.write ados.read (320)
Berikutnya
'Hapus data ADOS yang digunakan dan hubungi file header yang menggantikan header gambar baru 54 byte
Ados.loadFromFile (server.mappath ("head.fix"))
POS = lenb (ados.read ())
Ados.position = pos 'Tentukan posisi POS, dan Anda dapat mengimbangi posisi dengan 54 byte untuk menambahkan data grafis
Yang kedua untuk loop melakukan transformasi array angka, mengubah blok vertikal menjadi blok horizontal
Metode ini adalah untuk mengekstrak 4 kali 320 byte dan menulis ke objek ADOS, dan kemudian mengekstrak data gambar yang diimbangi dari baris kedua.
30 byte adalah karena lebar BMP lebih besar dari panjang tanpa tanda ujung garis 00
untuk i = 0 hingga 9 langkah 1
untuk j = 0 hingga 3
Ados1.position = i*32+j*320
Ados.position = pos+30*j+i*120
Ados.write ados1.read (30)
Berikutnya
Berikutnya
Ados.position = 0
response.binarywrite mengirimkan data gambar langsung ke klien
Response.contentType = "Image/BMP"
Response.binarywrite ados.read ()
Ados.Close: Set ADOS = tidak ada
Ados1.close: atur ados1 = tidak ada
Fungsi akhir
Artikel di atas adalah editor saluran teknologi baru yang dikumpulkan oleh Anda menggunakan adodb.stream untuk membuat kode verifikasi warna. Saya percaya semua orang telah mempelajari metode operasi ini. Kesalahan jaringan saluran teknologi baru akan terus mengatur keahlian teknis untuk Anda. Saya harap Anda akan terus memperhatikan kami!