Recommandé: comparaison de plusieurs façons de générer des fichiers HTML statiques pour ASP Il y a de nombreux avantages à convertir des pages dynamiques pour générer des fichiers HTML statiques, tels que la génération de pages Web HTML est propice à être incluse par les moteurs de recherche (en particulier pour les pages qui acceptent les paramètres dynamiques). Lors de l'accès à la réception, il est séparé de l'accès aux données, allégeant la pression sur l'accès à la base de données et accélérant l'ouverture des pages Web.
Utilisez ASP pour générer un code de vérification des couleurs de l'image
49 lignes de code, trois fichiers
Fichier ASP: code.asp
Fichiers de données: body.fix, head.fix
Utilisation: <img src = code.asp>
<% Option explicitResponse.buffer = truenumCodeFunction numcode () réponse.expires = -1 réponse.addheader pragma, non-cache réponse.addheader cache-ctrol, sans cache dim znum zimg (4), nstr nstr = cstr (znum) pour i = 0 à 3 zimg (i) = cint (mid (nstr, i 1,1)) suivant dim pos set ados = server.createObject (adodb.stream) ados.mode = 3 ados.type = 1 aDos.open set ados1 = server.CreatEObject Ados1.type = 1 ados1.open ados.loadFromfile (server.mappath (body.fix)) ados1.write ados.read (1280) pour i = 0 à 3 ados.position = (9-zimg (i)) * 320 ados1.position = i * 320 ados1.write ados.read (320) Next) Ados.loadFromfile (server.mappath (head.fix)) pos = lenb (ados.read ()) ados.position = pos pour i = 0 à 9 étape 1 pour j = 0 à 3 ados1.position = i * 32 j * 320 ados.Position = pos 30 * ji * 120 ados.write ados1.read (30) Ados.Position = 0 Response.BinaryWrite ados.read () Ados.Close: Set ADOS = Rien ADOS1.CLOSE: SET ADOS1 = Nothing Function 'ASP Code créé par BlueIdea.com Web Team V37 2003-7-25%> |
Explication du code:
| Réponse.buffer = true Code num Fonction numcode () Response.expires = -1 Réponse.addheader pragma, sans cache Réponse.Addheader Cache-Ctrol, sans 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:
| Définir 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 ligne de 10 points 30 octets Marque de fin de ligne 00 00 00 2 octets 32 octets, donc une image 10x100 avec une largeur plus petite que la longueur de chaque nombre 10x10 est de 320 octets
«Si la longueur est supérieure à la largeur, il n'y aura pas de marque de ligne de ligne de 0000, qui est 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, extraire 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, puis compensez 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
| Ce qui suit est le contenu cité: pour i = 0 à 9 étape 1 pour j = 0 à 3 Ados1.position = i * 32 j * 320 ADOS.POSITION = POS 30 * JI * 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 |
Partager: à propos de la séparation du code et de la page ASP Afin d'éviter les difficultés de maintenance causées par la rédaction mixte du code TML du programme ASP, cet article présente une méthode pour utiliser des modèles pour séparer les programmes et les pages pour faciliter la programmation. Lorsque vous utilisez ASP pour créer un site, un fichier ASP apparaît souvent, le code du programme et HTM