Savez-vous comment utiliser adodb.stream pour créer des codes de vérification des couleurs? Aujourd'hui, l'éditeur de la chaîne Foxin Technology démontre la méthode de fonctionnement pour vous dans un exemple. J'espère que cela vous sera utile qui apprendra ces connaissances.
La copie de code est la suivante:Réponse.buffer = true
Code num
Fonction numcode ()
Response.expires = -1
Response.Addheader "Pragma", "No-Cache"
Réponse.addheader "cache-ctrol", "no-cache"
Dim Znum, I, J
ADOS DIM, ADOS1
Randomiser la minuterie
Générer des nombres à quatre chiffres aléatoires:
Znum = Cint (8999 * RND + 1000)
Passer à la session
Session ("getcode") = znum
Ce pour Loop consiste à mettre des nombres aléatoires dans un tableau avec l'indice 3, ce qui est pratique pour fournir la transformation du tableau ultérieure
Dim Zimg (3), NSTR
Nstr = cstr (znum)
Pour i = 0 à 3
zimg (i) = cint (mid (nstr, i + 1,1))
Suivant
POS DIM
«Définissez deux objets binaires Adodb.stream pour l'opération de données d'image:
SET ADOS = Server.CreateObject ("Adodb.stream")
Ados.Mode = 3
Ados.Type = 1
Ados.open
Définir ADOS1 = Server.CreateObject ("Adodb.stream")
Ados1.mode = 3
Ados1.type = 1
ADOS1.Open
'Charge 0 ~ 9 données numériques 10x100, données GBR à tableau, chacun de 320 octets, 10 chiffres 3200 octet
'Bgr un point, 10x10 points un numéro, un point trois octets (8 bits en binaire, 00 ~ ff en hexadécimal)
'Une rangée de 10 points 30 octets + fin de ligne de ligne 00 00 2 octets 32 octets, donc une image 10x100 avec une largeur plus petite que la longueur de chaque chiffre 10x10 est de 320 octets
'Si la longueur est plus grande que la largeur, il n'y aura pas de marque de fin de la ligne 0000, directement de 300 octets
Ce sont les détails de données BMP 24bit
'Quant à la tête, il est également très simple, y compris la longueur et la largeur, le marquage de début de l'image, etc. ~~ Il ne s'agit que de 54 octets, beaucoup moins compliqués que JPG ou quelque chose
Ados.loadFromfile (server.mappath ("body.fix"))
Ados1.write ados.read (1280)
'Le premier pour Loop extrait les quatre nombres correspondants du tableau numérique 10x100 de l'ordre des nombres aléatoires générés
Mais un tableau vertical de nombres
pour i = 0 à 3
Ados.Position = (9-zimg (i)) * 320
Ados1.position = i * 320
Ados1.write ados.read (320)
suivant
'Effacez les données des ADOS utilisées et appelez dans le fichier d'en-tête qui remplace l'en-tête d'image 54 octets
Ados.loadFromFile (server.mappath ("head.fix"))
Pos = lenb (ados.read ())
Ados.Position = POS 'Spécifiez la position POS, et vous pouvez compenser la position de 54 octets pour ajouter des données graphiques
La seconde pour Loop effectue une transformation du tableau des nombres, convertissant les blocs verticaux en blocs horizontaux
La méthode consiste à extraire 4 fois de 320 octets et à écrire dans l'objet ADOS, puis à extraire les données d'image décalées de la deuxième ligne.
30 octets est dû au fait que la largeur du BMP est supérieure à longue sans 00 00 la ligne de fin de ligne
pour i = 0 à 9 étape 1
pour j = 0 à 3
Ados1.position = i * 32 + j * 320
Ados.Position = pos + 30 * j + i * 120
Ados.write ados1.read (30)
suivant
suivant
Ados.Position = 0
réponse.binarywrite envoie des données d'image directement au client
Response.ContentType = "Image / BMP"
Réponse.binarywrite ados.read ()
Ados.close: définissez les ados = rien
Ados1.close: définissez ados1 = rien
Fonction finale
L'article ci-dessus est l'éditeur de la chaîne Error New Technology compilée par vous en utilisant ADODB.Stream pour créer des codes de vérification des couleurs. Je crois que tout le monde a appris ces méthodes de fonctionnement. L'erreur New Technology Channel Network continuera d'organiser l'expertise technique pour vous. J'espère que vous continuerez à nous faire attention!