ASP implementiert die komponentenfreie Generierung von Bestätigungscodes im GIF-Format. Freunde, die ASP-Bestätigungscodes benötigen, können darauf verweisen. Kopieren Sie den Codecode wie folgt:
<%
Option Explicit ' Deklaration anzeigen
Klasse Com_GifCode_Class
''''''''''''''''''''''''''''''''''''
' Autor: Layen [email protected] 84815733(QQ)
' Danke: Laomi, Laomiao, NetRube
'02.01.2006
''''''''''''''''''''''''''''''''''''
Öffentlicher Lärm, Anzahl, Breite, Höhe, Winkel, Versatz, Rand
Private Graph(), Margin(3)
Private Sub Class_Initialize()
Randomisieren
Laut = 16 ' Wahrscheinlichkeit des Auftretens von Störstellen
Count = 4 'Anzahl der Zeichen
Breite = 80' Bildbreite
Höhe = 20' Bildhöhe
Winkel = 2 ' Zufällige Winkeländerung
Offset = 20 'Offset zufällige Variation
Border = 1 'Randgröße
Sub beenden
Öffentliche Funktion Create()
Const cCharSet = 123456789
Dim i, x, y
vValidCode dimmen: vValidCode =
vIndex dimmen
ReDim-Diagramm (Breite-1, Höhe-1)
Für i = 0 To Count - 1
vIndex = Int(Rnd * Len(cCharSet))
vValidCode = vValidCode + Mid(cCharSet, vIndex+1, 1)
SetDraw vIndex, d
Nächste
Erstellen = vValidCode
Funktion beenden
Sub SetDot(pX, pY)
Wenn pX * (Breite-pX-1) >= 0 und pY * (Höhe-pY-1) >= 0, dann
Graph(pX, pY) = 1
Ende wenn
Sub beenden
Öffentliches Sub SetDraw(pIndex, pNumber)
„Charakterdaten
DotData(8) dimmen
DotData(0) = Array(30, 15, 50, 1, 50, 100)
DotData(1) = Array(1 ,34 ,30 ,1 ,71, 1, 100, 34, 1, 100, 93, 100, 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, 100, 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, 1, 30, 100, 70, 100, 80, 70, 100, 30, 100, 1, 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)
Dimmen Sie vExtent: vExtent = Breite / Anzahl
Margin(0) = Border + vExtent * (Rnd * Offset) / 100 + Margin(1)
Margin(1) = vExtent * (pNumber + 1) – Rand – vExtent * (Rnd * Offset) / 100
Margin(2) = Rand + Höhe * (Rnd * Offset) / 100
Rand(3) = Höhe – Rand – Höhe * (Rnd * Offset) / 100
Dimmen Sie vStartX, vEndX, vStartY, vEndY
Dimmen Sie vWidth, vHeight, vDX, vDY, vDeltaT
Dimmen Sie vAngle, vLength
vWidth = Int(Margin(1) - Margin(0))
vHeight = Int(Margin(3) - Margin(2))
„Startkoordinaten.“
vStartX = Int((DotData(pIndex)(0)-1) * vWidth / 100)
vStartY = Int((DotData(pIndex)(1)-1) * vHeight / 100)
Dim i,j
Für i = 1 To UBound(DotData(pIndex), 1)/2
Wenn DotData(pIndex)(2*i-2) <> 0 und DotData(pIndex)(2*i) <> 0, dann
'Endpunktkoordinaten
vEndX = (DotData(pIndex)(2*i)-1) * vWidth / 100
vEndY = (DotData(pIndex)(2*i+1)-1) * vHeight / 100
„Horizontale Lücke
vDX = vEndX – vStartX
„Vertikale Lücke
vDY = vEndY – vStartY
'Neigungswinkel
Wenn vDX = 0, dann
vWinkel = Sgn(vDY) * 3,14/2
Anders
vWinkel = Atn(vDY / vDX)
Ende wenn
'Abstand zwischen zwei Koordinaten
Wenn Sin(vAngle) = 0, dann
vLength = vDX
Anders
vLength = vDY / Sin(vAngle)
Ende wenn
' Zufälliger Drehwinkel
vAngle = vAngle + (Rnd - 0,5) * 2 * Winkel * 3,14 * 2 / 100
vDX = Int(Cos(vAngle) * vLength)
vDY = Int(Sin(vAngle) * vLength)
Wenn Abs(vDX) > Abs(vDY), dann vDeltaT = Abs(vDX) Sonst vDeltaT = Abs(vDY)
Für j = 1 bis vDeltaT
SetDot Margin(0) + vStartX + j * vDX / vDeltaT, Margin(2) + vStartY + j * vDY / vDeltaT
Nächste
vStartX = vStartX + vDX
vStartY = vStartY + vDY
Ende wenn
Nächste
Sub beenden
Öffentliche Unterausgabe()
Response.Expires = -9999
Response.AddHeader-Pragma, kein Cache
Response.AddHeader Cache-Steuerung, kein Cache
Response.ContentType = Bild/Gif
'Dateityp
Response.BinaryWrite ChrB(Asc(G)) & ChrB(Asc(I)) & ChrB(Asc(F))
'Versionsinformationen
Response.BinaryWrite ChrB(Asc(8)) & ChrB(Asc(9)) & ChrB(Asc(a))
'Logische Bildschirmbreite
Response.BinaryWrite ChrB(Width Mod 256) & ChrB((Width / 256) Mod 256)
'Logische Bildschirmhöhe
Response.BinaryWrite ChrB(Height Mod 256) & ChrB((Height / 256) Mod 256)
Response.BinaryWrite ChrB(128) & ChrB(0) & ChrB(0)
'Globale Farbliste
Response.BinaryWrite ChrB(255) & ChrB(255) & ChrB(255)
Response.BinaryWrite ChrB(0) & ChrB(85) & ChrB(255)
'Bildkennung
Response.BinaryWrite ChrB(Asc(,))
Response.BinaryWrite ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)
'Bildbreite
Response.BinaryWrite ChrB(Width Mod 256) & ChrB((Width / 256) Mod 256)
'Bildhöhe
Response.BinaryWrite ChrB(Height Mod 256) & ChrB((Height / 256) Mod 256)
Response.BinaryWrite ChrB(0) & ChrB(7) & ChrB(255)
Dim x, y, i : i = 0
Für y = 0 bis Höhe - 1
Für x = 0 bis Breite - 1
Wenn Rnd < Laut / 100, dann
Response.BinaryWrite ChrB(1-Graph(x, y))
Anders
Wenn x * (x-Breite) = 0 oder y * (y-Höhe) = 0, dann
Response.BinaryWrite ChrB(Graph(x, y))
Anders
Wenn Graph(x-1, y) = 1 oder Graph(x, y) oder Graph(x, y-1) = 1, dann
Response.BinaryWrite ChrB(1)
Anders
Response.BinaryWrite ChrB(0)
Ende wenn
Ende wenn
Ende wenn
Wenn (y * Breite + x + 1) Mod 126 = 0 Dann
Response.BinaryWrite ChrB(128)
ich = ich + 1
Ende wenn
Wenn (y * Breite + x + i + 1) Mod 255 = 0 Dann
Wenn (Breite*Höhe – y * Breite – x – 1) > 255, dann
Response.BinaryWrite ChrB(255)
Anders
Response.BinaryWrite ChrB(Breite * Höhe Mod 255)
Ende wenn
Ende wenn
Nächste
Nächste
Response.BinaryWrite ChrB(128) & ChrB(0) & ChrB(129) & ChrB(0) & ChrB(59)
Sub beenden
Unterricht beenden
mCode dimmen
Setzen Sie mCode = New Com_GifCode_Class
Session(GetCode) = mCode.Create()
mCode.Output()
Setzen Sie mCode = Nichts
%>