Wissen Sie, wie Sie adodb.stream verwenden, um Farbprüfungscodes zu erstellen? Heute demonstriert der Herausgeber des Foxin Technology Channel die Betriebsmethode für Sie in einem Beispiel. Ich hoffe, es wird für Sie hilfreich sein, die dieses Wissen lernen.
Die Codekopie lautet wie folgt:Response.buffer = true
Numcode
Funktion numcode ()
Response.expires = -1
Response.addHeader "Pragma", "No-Cache"
Response.addHeader "Cache-Ctrol", "No-Cache"
Dim Znum, i, j
Dim Ados, ADOS1
Timer randomisieren
Generieren Sie zufällige vierstellige Zahlen:
Znum = Cint (8999*RND+1000)
Zur Sitzung übergeben
Sitzung ("getCode") = znum
Dies für die Schleife besteht darin, Zufallszahlen in ein Array mit Index 3 zu setzen, was für die Bereitstellung der nachfolgenden Array -Transformation zweckmäßig ist
Dim Zimg (3), Nstr
Nstr = cstr (Znum)
Für i = 0 bis 3
zimg (i) = cint (Mid (Nstr, i+1,1))
Nächste
Dim pos
'Definieren Sie zwei adodb.stream -binäre Objekte für die Bilddatenoperation:
Setzen Sie ados = server.createObject ("adodb.stream")
Ados.mode = 3
Ados.type = 1
Ados.open
Setzen Sie ados1 = server.createObject ("adodb.stream")
Ados1.mode = 3
Ados1.Type = 1
Ados1.open
'Load 0 ~ 9 Digitale Daten 10x100, GBR -Array -Daten, jeweils 320 Byte, 10 Ziffern 3200 Byte
BGR Ein Punkt, 10x10 Punkte Eine Zahl, ein Punkt drei Bytes (8 Bit in Binärer, 00 ~ ff in hexadezimal)
'Eine Zeile von 10 Punkten 30 Bytes + Ende der Linienmarkierung 00 00 2 Bytes 32 Bytes
Wenn die Länge größer als die Breite ist, gibt es keine Endmarke von Linie 0000, direkt 300 Bytes
Dies sind die BMP 24 -Bit -Datendetails
'Was den Kopf betrifft, ist es auch sehr einfach, einschließlich Länge und Breite, Bild -Startmarkierung usw. ~~ Es sind nur 54 Bytes, weit weniger kompliziert als JPG oder so
Ados.loadfromFile (server.mappath ("body.fix"))
Ados1.write ados.read (1280)
'Die erste für Schleife extrahiert die entsprechenden vier Zahlen aus dem Digitalarray 10x100 in der Reihenfolge der generierten Zufallszahlen
Aber vertikale Reihe von Zahlen
für i = 0 bis 3
Ados.position = (9-zimg (i))*320
Ados1.position = i*320
Ados1.write ados.read (320)
nächste
„Löschen Sie die Daten der verwendeten ADOs und rufen Sie die Header -Datei auf, die den neuen Bildheader 54 -Bytes ersetzt
Ados.loadfromFile (server.mappath ("head.fix"))
Pos = lenb (ados.read ())
ADOS.Position = POS 'Geben Sie die POS -Position an und Sie können die Position um 54 Bytes ausgleichen, um grafische Daten hinzuzufügen
Die zweite für die Schleife führt eine Array -Transformation von Zahlen durch und wandelt vertikale Blöcke in horizontale Blöcke um
Die Methode besteht darin, 4 Mal von 320 Bytes zu extrahieren und an das ADOS -Objekt zu schreiben und dann die Bilddaten zu extrahieren, die aus der zweiten Zeile ausgefallen sind.
30 Bytes liegt daran, dass die BMP -Breite ohne 00 00 Line End Mark größer ist
für i = 0 bis 9 Schritt 1
für J = 0 bis 3
Ados1.position = i*32+j*320
Ados.position = pos+30*j+i*120
Ados.write ados1.read (30)
nächste
nächste
Ados.position = 0
Antwort.BinaryWrite sendet Bilddaten direkt an den Client
Antwort.ContentType = "Bild/BMP"
Response.binarywrite ados.read ()
ADOS.CLOSE: Setzen Sie ADOS = nichts
ADOS1.CLOSE: Setzen Sie ADOS1 = nichts
Endfunktion
Der obige Artikel ist der Editor des Fehlers Neuen Technologiekanal, der von Ihnen mit Adodb.Stream zusammengestellt wurde, um Farbprüfungscodes zu erstellen. Ich glaube, jeder hat diese Betriebsmethoden gelernt. Der Fehler Neues Technologiekanal -Netzwerk wird weiterhin technisches Fachwissen für Sie organisieren. Ich hoffe, Sie werden uns weiterhin beachten!