Untuk memahami kode -kode ini, terutama untuk memahami objek data biner di ASP, Adodb.stream! Program ini terutama menggunakan ADODB.Stream. Belum ada mesin identifikasi yang baik. Identifikasi 4321 hingga 89910, sehingga kode gambar masih lebih aman. Saya melihat metode retak kekerasan di internet. Halaman akan dilarang mengirimkan pengiriman eksternal. File ASP: Code.asp File Data: body.fix, head.fix Penggunaan: <img src = "code.asp"> <% Response.buffer = true NumCode Fungsi numcode () Response.expires = -1 Response.addheader "pragma", "no-cache" Response.addheader "cache-clm", "no-cache" Redup znum, i, j Dim Ados, ADOS1 Mengacak timeer Menghasilkan empat digit acak: znum = cint (8999*rnd 1000) Lulus ke sesi Sesi ("getCode") = znum Loop untuk menempatkan nomor acak ke dalam array 3 Penyelesaian 3, yang nyaman untuk menyediakan 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 penggunaan 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 angka 3200byte 'Bgr satu titik, 10x10 poin angka, satu poin tiga byte (biner 8 -bit, hexadecimal 00 ~ ff) 'Garis 10 poin 30 byte garis berakhir 00 00 00 dua -byte 32 byte, jadi 10x100 kurang dari gambar panjang, setiap angka 10x10 adalah 320 byte 'Mereka yang tumbuh lebih besar dari lebar, tidak ada cara untuk mengakhiri tanda 0000, itu adalah 300 byte secara langsung Ini adalah data BMP 24bit. 'Sedangkan untuk kepala, itu juga sangat sederhana, termasuk panjang dan lebar, gambar mulai menandai dan sebagainya Ados.loadFromFile (server.mappath ("body.fix")) Ados1.write ados.read (1280) 'Loop pertama, dan empat angka yang sesuai diekstraksi dari jumlah angka acak yang dihasilkan dari 10x100 Tapi array nomor vertikal untuk i = 0 hingga 3 Ados.position = (9-zimg (i))*320 Ados1.position = i*320 Ados1.write ados.read (320) Berikutnya 'Hapus data ADO yang telah digunakan, dan sesuaikan kepala gambar baru 54 byte dari file header Ados.loadFromFile (server.mappath ("head.fix")) POS = lenb (ados.read ()) Ados.positation = pos 'Tentukan posisi POS, Anda dapat menambahkan data grafis ke posisi 54 byte Yang kedua untuk loop, jumlah jumlah angka, dari blok vertikal ke blok numerik horizontal Metode ini adalah mengekstrak 4 kali 320 byte untuk menulis 30 byte ke objek ADOS, dan kemudian mengekstrak data gambar yang menggeser baris kedua. 30 byte disebabkan oleh label akhir dengan baris 00 00 di BMP. untuk i = 0 hingga 9 langkah 1 untuk j = 0 hingga 3 Ados1.position = i*32 j*320 Ados.positation = pos 30*ji*120 Ados.write ados1.read (30) Berikutnya Berikutnya Ados.positation = 0 Response.binarywrite langsung mengirim data gambar ke klien Response.contentType = "Image/BMP" Response.binarywrite ados.read () Ados.close: atur ados = tidak ada Ados1.close: atur ados1 = tidak ada Fungsi akhir |