O ASP implementa um código de verificação de formato GIF sem componente, os amigos que precisam do código de verificação do ASP podem se referir a ele.
<%
Opção Explícita 'Declaração de exibição
Classe com_gifcode_class
Barulhento público, contagem, largura, altura, ângulo, deslocamento, borda
Gráfico privado (), margem (3)
Sub -classe privado_initialize ()
Randomizar
Barulhento = 16 'A probabilidade do ponto de interferência aparece
Contagem = 4 'Quantidade do personagem
Largura = 80 'de largura de imagem
Altura = 20 'Altura da imagem
Ângulo = 2 'Mudança aleatória anunciada
Deslocamento = 20 'Alterações aleatórias no deslocamento
Border = 1 'Tamanho do quadro
Final sub
Função pública Criar ()
Const ccharset = 123456789
Dim i, x, y
Dim vValidCode: vValidCode =
Dim vindex
Gráfico Redim (largura-1, altura-1)
Para i = 0 para contar -1
vindex = int (rnd * len (ccharset))
vValidCode = vValidCode + MID (Ccharset, videx + 1, 1)
SetDraw Vindex, i
Próximo
Create = vValidCode
Função final
Sub SetDot (PX, PY)
Se px * (largura-px-1)> = 0 e py * (altura-py-1)> = 0 então
Gráfico (px, py) = 1
Final se
Final sub
Public Sub SetDraw (Pindex, Pnumber)
Dados dos caracteres
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, 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, 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, 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, 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, 50 , 100, 40)
Dim Vertent: Vextent = Width / Count
Margem (0) = borda + vextent * (rnd * deslocamento) / 100 + margem (1)
Margem (1) = vextent * (pnumber + 1) -border -vextent * (rnd * deslocamento) / 100
Margem (2) = borda + altura * (rnd * deslocamento) / 100
Margem (3) = altura -Forder -Height * (RND * Offset) / 100
Dim vSTartx, VendX, Vstarty, Vendy
Dim vwidth, vdx, vdx, vdy, vdeltat
Dim Vangle, Vlength
vwidth = int (margem (1) -Margin (0))
vHeight = int (margem (3) -Margin (2))
'Coordenadas iniciais
vSTartx = int ((Dotdata (Pindex) (0) -1) * Vwidth / 100)
vstarty = int
Dim i, j
Para i = 1 a ubound (Dotdata (Pindex), 1)/2
Se Dotdata (Pindex) (2*i-2) <> 0 e Dotdata (Pindex) (2*i) <> 0 então
'Coordenadas do ponto final
vendx = (Dotdata (Pindex) (2 * i) -1) * Vwidth / 100
Vendy = (dotdata (pindex) (2 * i+1) -1) * vheight / 100
'Gap horizontal
vdx = vendx -vstartx
'Gap vertical
vdy = vendy -vstarty
Ângulo de inclinação
Se vdx = 0 então
Vangle = SGN (VDY) * 3.14/2
Outro
Vangle = ATN (VDY / VDX)
Final se
Duas coordenadas de duas coordenadas
Se pecado (vangle) = 0 então
vLength = vdx
Outro
vLength = vdy / sin (vangle)
Final se
Ângulo de rotação aleatória
Vangle = Vangle + (RND -0,5) * 2 * ângulo * 3,14 * 2/10
vdx = int (cos (vangle) * vLength)
vdy = int (sin (vangle) * vLength)
Se abs (vdx)> abs (vdy) então vdeltat = abs (vdx) else vdeltat = abs (vdy)
Para J = 1 a VDeltat
Margem SetDot (0) + VSTartx + J * vdx / vdeltat, margem (2) + vstarty + j * vdeltatat
Próximo
vSTartx = vSTartx + vdx
vSTarty = vSTarty + VDY
Final se
Próximo
Final sub
Sub -output público ()
Response.Expires = -9999
Response.AddHeader Pragma, sem cache
Response.AdHeader Cache-CLM, sem cache
Response.ContentType = Image/GIF
'Tipo de arquivo
Response.BinaryWrite Chrb (ASC (G)) e Chrb (ASC (I)) e Chrb (ASC (F))
'Informações da versão
Response.BinaryWrite Chrb (ASC (8)) e Chrb (ASC (9)) e Chrb (ASC (A))
'Largura da tela lógica
Response.BinaryWrite Chrb (Width Mod 256) e Chrb ((Width / 256) Mod 256)
Altura da tela lógica
Response.BinaryWrite Chrb (Hight Mod 256) e Chrb (Height / 256 Mod 256)
Response.BinaryWrite Chrb (128) e Chrb (0) e Chrb (0)
'Global Color List
Response.BinaryWrite Chrb (255) & Chrb (255) & Chrb (255)
Response.BinaryWrite Chrb (0) e Chrb (85) e Chrb (255)
Identificação da imagem
Response.BinaryWrite Chrb (ASC (,,))
Response.BinaryWrite Chrb (0) e Chrb (0) e Chrb (0) e Chrb (0)
'Largura da imagem
Response.BinaryWrite Chrb (Width Mod 256) e Chrb ((Width / 256) Mod 256)
'Imagem alta
Response.BinaryWrite Chrb (Hight Mod 256) e Chrb (Height / 256 Mod 256)
Response.BinaryWrite Chrb (0) e Chrb (7) e Chrb (255)
Dim x, y, i: i = 0
Para y = 0 a altura -1
Para x = 0 para largura -1
Se rnd <Noisy / 100 então
Response.BinaryWrite Chrb (1 graf (x, y))
Outro
Se x * (x-lar) = 0 ou y * (y-height) = 0 Então
Response.BinaryWrite Chrb (Gráfico (X, Y))
Outro
Se gráfico (x-1, y) = 1 ou gráfico (x, y) ou gráfico (x, y-1) = 1 então
Response.BinaryWrite Chrb (1)
Outro
Response.BinaryWrite Chrb (0)
Final se
Final se
Final se
If (y * largura + x + 1) mod 126 = 0 então
Response.BinaryWrite Chrb (128)
I = i + 1
Final se
If (y * largura + x + i + 1) mod 255 = 0 então
If (largura * altura -y * width -x -1)> 255 Então
Response.BinaryWrite Chrb (255)
Outro
Response.BinaryWrite Chrb (Width * Hight Mod 255)
Final se
Final se
Próximo
Próximo
Response.BinaryWrite Chrb (128) e Chrb (0) e Chrb (129) & Chrb (0) e Chrb (59)
Final sub
Classe final
Dim McODE
Definir mcode = new com_gifcode_class
Sessão (getCode) = mcode.create ()
mcode.Output ()
Definir McOode = nada
%>