ASP implementa un código de verificación de formato GIF sin componente, los amigos que necesitan el código de verificación ASP pueden referirse a él.
<%
Opción explícita 'Declaración de visualización
Clase COM_GIFCODE_CLASS
Público ruidoso, recuento, ancho, altura, ángulo, desplazamiento, borde
Gráfico privado (), margen (3)
Sub class_initialize () privado ()
Aleatorizar
Noisy = 16 'aparece la probabilidad del punto de interferencia
Conte = 4 'Cantidad del carácter
Ancho = 80 'ancho de imagen
Altura = 20 'Altura de la imagen
Ángulo = 2 'Cambio aleatorio anunciado
Compensación = 20 'cambios aleatorios a compensación
Border = 1 'tamaño de marco
Final
Función pública create ()
Const ccharset = 123456789
Dim I, X, Y
Dim vValidCode: vvalidCode =
Vindex dim
Gráfico de redim (ancho-1, altura-1)
Para i = 0 para contar -1
Vindex = int (rnd * len (ccharset))
vvalidCode = vvalidcode + mid (ccharset, videX + 1, 1)
Setdraw vindex, yo
Próximo
Create = vValidCode
Función final
Sub SetDot (PX, PY)
Si px * (width-px-1)> = 0 y py * (altura-py-1)> = 0 entonces
Graph (PX, Py) = 1
Final si
Final
Public Sub Setdraw (Pindex, PNumber)
'Datos de personajes
Dim 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) = matriz (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) = matriz (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) = matriz (1, 80, 30, 100, 80, 100, 100, 70, 100, 20, 70, 1, 30, 1, 1, 20, 1, 40, 30, 50, 70, 50 , 100, 40)
VERTENT DIM: VEXTENT = Width / Count
Margen (0) = border + vextent * (rnd * offset) / 100 + margen (1)
Margen (1) = Vextent * (pnumber + 1) -Border -Vextent * (rnd * offset) / 100
Margen (2) = borde + altura * (rnd * offset) / 100
Margen (3) = altura -Border -Height * (rnd * offset) / 100
Dim VStartX, Vendx, VStarty, Vendy
Dim VWidth, VDX, VDX, VDY, VDeltat
Dim vangangle, vLength
vwidth = int (margin (1) -margin (0))
vheight = int (margin (3) -margin (2))
'Coordenadas iniciales
vstartx = int ((dotData (pindex) (0) -1) * vwidth / 100)
vstarty = int
Dim I, J
Para i = 1 a Ubound (dotData (Pindex), 1)/2
Si dotData (Pindex) (2*i-2) <> 0 y dotData (Pindex) (2*i) <> 0 entonces
'Coordenadas de punto final
Vendx = (dotData (pindex) (2 * i) -1) * vwidth / 100
Vendy = (DotData (Pindex) (2 * i+1) -1) * Vheight / 100
'Brecha horizontal
vdx = Vendx -vstartx
'Brecha vertical
vdy = Vendy -vstarty
'Ángulo de inclinación
Si vdx = 0 entonces
vangle = sgn (vdy) * 3.14/2
Demás
Vangle = ATN (VDY / VDX)
Final si
'Dos distancia de coordenadas
Si sin (vangangle) = 0 entonces
vLength = vdx
Demás
vLength = vdy / sin (vangangle)
Final si
'Ángulo de rotación aleatoria
Vangle = Vangle + (rnd -0.5) * 2 * ángulo * 3.14 * 2 /100
vdx = int (cos (vangangle) * vLenggth)
vdy = int (sin (vangangle) * vLenggth)
Si ABS (VDX)> ABS (VDY) entonces VDeltat = ABS (VDX) Else Vdeltat = ABS (VDY)
Para j = 1 a vdeltat
Margen de setDot (0) + vstartx + j * vdx / vdeltat, margin (2) + vstarty + j * vdeltatat
Próximo
vstartx = vstartx + vdx
vstarty = vstarty + vdy
Final si
Próximo
Final
Public Sub Output ()
Respuesta.expires = -9999
Respuesta
Respuesta
Respuesta.ContentType = Image/GIF
'Tipo de archivo
Response.BinaryWrite CHRB (ASC (G)) y CHRB (ASC (I)) y CHRB (ASC (F))
'Información de la versión
Response.BinaryWrite CHRB (ASC (8)) y CHRB (ASC (9)) y CHRB (ASC (a))
'Ancho de pantalla lógica
Response.BinaryWrite CHRB (Width Mod 256) y CHRB ((ancho / 256) Mod 256)
'Altura de la pantalla lógica
Respuesta. BinaryWrite CHRB (Mod de altura 256) y CHRB (altura / 256 mod 256)
Response.BinaryWrite CHRB (128) y CHRB (0) y CHRB (0)
'Lista de color global
Response.BinaryWrite CHRB (255) y CHRB (255) y CHRB (255)
Response.BinaryWrite CHRB (0) y CHRB (85) y CHRB (255)
'Identificación de imágenes
Response.BinaryWrite CHRB (ASC (,,))
Response.BinaryWrite CHRB (0) y CHRB (0) y CHRB (0) y CHRB (0)
'Ancho de imagen
Response.BinaryWrite CHRB (Width Mod 256) y CHRB ((ancho / 256) Mod 256)
'Imagen alta
Respuesta. BinaryWrite CHRB (Mod de altura 256) y CHRB (altura / 256 mod 256)
Response.BinaryWrite CHRB (0) y CHRB (7) y CHRB (255)
Dim x, y, i: i = 0
Para y = 0 a altura -1
Para x = 0 a ancho -1
Si rnd <ruidoso / 100 entonces
Response.BinaryWrite CHRB (1 gráfico (x, y))
Demás
Si x * (x-width) = 0 o y * (y-height) = 0 entonces
Response.BinaryWrite CHRB (Graph (x, y))
Demás
Si gráfico (x-1, y) = 1 o gráfico (x, y) o gráfico (x, y-1) = 1 entonces
Respuesta. BinaryWrite CHRB (1)
Demás
Respuesta.BinaryWrite Chrb (0)
Final si
Final si
Final si
If (y * ancho + x + 1) mod 126 = 0 entonces
Respuesta. BinaryWrite CHRB (128)
I = i + 1
Final si
If (y * ancho + x + i + 1) mod 255 = 0 entonces
If (ancho * altura -y * ancho -x -1)> 255 entonces
Respuesta. BinaryWrite CHRB (255)
Demás
Respuesta. BinaryWrite CHRB (ancho * Mod de altura 255)
Final si
Final si
Próximo
Próximo
Response.BinaryWrite CHRB (128) y CHRB (0) y CHRB (129) y CHRB (0) y CHRB (59)
Final
Clase final
Dim Mcode
Establecer mcode = new COM_GIFCODE_CLASS
Sesión (getCode) = mcode.create ()
mcode.output ()
Establecer mcode = nada
%>