ASP mengimplementasikan kode verifikasi format GIF tanpa komponen, teman yang membutuhkan kode verifikasi ASP dapat merujuknya.
<%
Pernyataan Tampilan Opsi Eksplisit
Class com_gifcode_class
Berisik publik, hitungan, lebar, tinggi, sudut, offset, perbatasan
Grafik pribadi (), margin (3)
Private sub class_initialize ()
Mengacak
Berisik = 16 'Probabilitas titik interferensi muncul
Hitung = 4 'kuantitas karakter
Lebar = lebar gambar 80 '
Tinggi = 20 'tinggi gambar
Sudut = 2 'diumumkan perubahan acak
Offset = 20 'perubahan acak untuk offset
Batas = 1 'ukuran bingkai
Akhir sub
Fungsi publik create ()
Const ccharset = 123456789
Redup i, x, y
Redup vvalidcode: vvalidcode =
Redup vindex
Grafik redim (lebar-1, tinggi-1)
Untuk i = 0 untuk menghitung -1
vindex = int (rnd * len (ccharset))
VVALIDCODE = VVALIDCODE + MID (CCHARSET, VIDEX + 1, 1)
SetDraw Vindex, i
Berikutnya
Create = vValidCode
Fungsi akhir
Sub setDot (px, py)
Jika px * (lebar-px-1)> = 0 dan py * (tinggi-py-1)> = 0 lalu
Grafik (px, py) = 1
Akhiri jika
Akhir sub
Sub SetDraw publik (Pindex, Pnumber)
'Data karakter
Redup dotdata (8)
Dotdata (0) = array (30, 15, 50, 1, 50, 100)
Dotdata (1) = array (1, 34, 30, 1, 71, 1, 100, 34, 1, 100, 93, 100, 86)
Dotdata (2) = array (1, 1, 100, 1, 42, 42, 100, 70, 50, 100, 1, 70)
Dotdata (3) = array (100, 73, 6, 73, 75, 6, 75, 100)
Dotdata (4) = array (100, 1, 1, 1, 1, 50, 50, 35, 55, 100, 80, 50, 100, 1, 95)
Dotdata (5) = array (100, 20, 70, 1, 20, 1, 1, 30, 1, 80, 30, 100, 70, 100, 100, 80, 100, 60, 70, 50, 30, 50 , 1, 60)
Dotdata (6) = array (6, 26, 6, 6, 100, 6, 53, 100)
Dotdata (7) = array (100, 30, 100, 20, 70, 1, 30, 1, 1, 20, 30, 70, 80, 70, 100, 30, 100, 80, 80, 1, 70, 100 , 30)
Dotdata (8) = array (1, 80, 30, 100, 80, 100, 100, 70, 100, 20, 70, 1, 30, 1, 1, 20, 1, 40, 30, 50, 70, 50 , 100, 40)
Dim vertent: vextent = lebar / jumlah
Margin (0) = border + vextent * (rnd * offset) / 100 + margin (1)
Margin (1) = vextent * (pnumber + 1) -border -vextent * (rnd * offset) / 100
Margin (2) = batas + tinggi * (rnd * offset) / 100
Margin (3) = tinggi -border -height * (rnd * offset) / 100
Redup vstartx, vendx, vstarty, vendy
Redup vwidth, vdx, vdx, vdy, vdeltat
Redup vangle, vlength
vwidth = int (margin (1) -margin (0))
vheight = int (margin (3) -margin (2))
'Mulai koordinat
vstartx = int ((dotdata (pindex) (0) -1) * vwidth / 100)
vStarty = int
Redup i, j
Untuk i = 1 ke ubound (dotdata (pindex), 1)/2
Jika dotdata (pindex) (2*i-2) <> 0 dan dotdata (pindex) (2*i) <> 0 lalu
Koordinat titik akhir
vendx = (dotdata (pindex) (2 * i) -1) * vwidth / 100
Vendy = (dotdata (pindex) (2 * i+1) -1) * vheight / 100
'Kesenjangan horizontal
vdx = vendx -vstartx
'Kesenjangan vertikal
vdy = vendy -vstarty
Sudut miring
Jika vdx = 0 lalu
vangle = sgn (vdy) * 3.14/2
Kalau tidak
vangle = atn (vdy / vdx)
Akhiri jika
'Dua jarak koordinat
Jika dosa (vangle) = 0 lalu
vlength = vdx
Kalau tidak
vlength = vdy / sin (vangle)
Akhiri jika
'Sudut rotasi acak
Vangle = vangle + (rnd -0.5) * 2 * sudut * 3.14 * 2/100
vdx = int (cos (vangle) * vlength)
vdy = int (sin (vangle) * vlength)
Jika ABS (VDX)> ABS (VDY) maka vdeltat = abs (vdx) else vdeltat = abs (vdy)
Untuk j = 1 ke vdeltat
SetDot margin (0) + vstartx + j * vdx / vdeltat, margin (2) + vstarty + j * vdeltatat
Berikutnya
vstartx = vstartx + vdx
vStarty = vStarty + vdy
Akhiri jika
Berikutnya
Akhir sub
Output sub publik ()
Response.expires = -9999
Response.addheader Pragma, tanpa cache
Response.adheader cache-clm, tanpa cache
Response.contentType = gambar/gif
Jenis file
Response.binarywrite chrb (asc (g)) & chrb (asc (i)) & chrb (asc (f))
'Informasi Versi
Response.binarywrite chrb (ASC (8)) & chrb (ASC (9)) & chrb (ASC (A))
'Lebar layar logika
Response.binarywrite chrb (lebar mod 256) & chrb ((lebar / 256) mod 256)
'Tinggi layar logika
Response.binarywrite chrb (tinggi mod 256) & chrb (tinggi / 256 mod 256)
Response.binarywrite chrb (128) & chrb (0) & chrb (0)
Daftar warna global
Response.binarywrite chrb (255) & chrb (255) & chrb (255)
Response.binarywrite chrb (0) & chrb (85) & chrb (255)
'Identifikasi gambar
Response.binarywrite chrb (ASC (,,))
Response.binarywrite chrb (0) & chrb (0) & chrb (0) & chrb (0)
'Lebar gambar
Response.binarywrite chrb (lebar mod 256) & chrb ((lebar / 256) mod 256)
'Gambar Tinggi
Response.binarywrite chrb (tinggi mod 256) & chrb (tinggi / 256 mod 256)
Response.binarywrite chrb (0) & chrb (7) & chrb (255)
Redup x, y, i: i = 0
Untuk y = 0 hingga tinggi -1
Untuk x = 0 hingga lebar -1
Jika Rnd <Noisy / 100 maka
Response.binarywrite chrb (1-graph (x, y))
Kalau tidak
Jika x * (x-lebar) = 0 atau y * (y-height) = 0 lalu
Response.binarywrite chrb (grafik (x, y))
Kalau tidak
Jika grafik (x-1, y) = 1 atau grafik (x, y) atau grafik (x, y-1) = 1 Kemudian
Response.binarywrite chrb (1)
Kalau tidak
Response.binarywrite chrb (0)
Akhiri jika
Akhiri jika
Akhiri jika
If (y * width + x + 1) mod 126 = 0 lalu
Response.binarywrite chrb (128)
I = i + 1
Akhiri jika
If (y * width + x + i + 1) mod 255 = 0 lalu
If (lebar * tinggi -y * lebar -x -1)> 255 lalu
Response.binarywrite chrb (255)
Kalau tidak
Response.binarywrite chrb (lebar * tinggi mod 255)
Akhiri jika
Akhiri jika
Berikutnya
Berikutnya
Response.binarywrite chrb (128) & chrb (0) & chrb (129) & chrb (0) & chrb (59)
Akhir sub
Kelas akhir
Redup mcode
Atur mcode = com_gifcode_class baru
Sesi (getCode) = mcode.create ()
mcode.output ()
Atur mcode = tidak ada
%>