Recomendado: Comparación de varias formas de generar archivos HTML estáticos para ASP Hay muchos beneficios para convertir páginas dinámicas para generar archivos HTML estáticos, como la generación de páginas web HTML es propicio para ser incluido por los motores de búsqueda (especialmente para páginas que aceptan parámetros dinámicos). Al acceder a la recepción, se separa del acceso a los datos, aliviando la presión sobre el acceso a la base de datos y acelerando la apertura de las páginas web.
Use ASP para generar el código de verificación de color de la imagen
49 líneas de código, tres archivos
Archivo ASP: Code.asp
Archivos de datos: Body.fix, head.fix
Uso: <img src = code.asp>
<%Opción ExplicitITResponse.Buffer = TrUenumCodeFunction numCode () respuesta.expires = -1 Respuesta.addHeader Pragma, no cache Respuesta.addHeader Cache-Ctrol, no cache dim end zimg (4), nstr nstr = cstr (znum) para i = 0 a 3 zimg (i) = cint (mid (nstr, i 1,1)) siguiente dim POS establecido = server ADOS1.TYPE = 1 ADOS1.OPEN ADOS.LOADFROMFILE (Server.Mappath (Body.Fix)) ADOS1.WRITE ADOS.READ (1280) Para i = 0 a 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 para i = 0 a 9 paso 1 para j = 0 a 3 ados1.position = i*32 j*320 ados.position = pos 30*ji*120 ados.write ados1.rup Ados.position = 0 Respuesta.BinaryWrite ADOS.Read () ADOS.CLOSE: SET ADOS = Nothing ADOS1.CLOSE: SET ADOS1 = FUNCIÓN NADAEND 'Código ASP creado por Blueidea.com Web Team V37 2003-7-25%> |
Explicación del código:
| Respuesta.Buffer = True Numorizar Función numCode () Respuesta.expires = -1 Respuesta Respuesta Dim Znum, I, J Dim ADOS, ADOS1 Aleatorizar un temporizador |
Genere números aleatorios de cuatro dígitos:
| Znum = Cint (8999*RND 1000) |
Pasar a la sesión
| Sesión (getCode) = znum |
Esto para el bucle es poner números aleatorios en una matriz con el subíndice 3, que es conveniente para proporcionar la transformación de la matriz posterior
| Dim Zimg (3), NSTR NSTR = CSTR (ZNUM) Para i = 0 a 3 zimg (i) = Cint (Mid (NSTR, I 1,1)) Próximo Dim POS |
'Defina dos objetos binarios ADODB.stream para la operación de datos de imagen:
| establecer ados = server.createObject (ADODB.Stream) ADOS.MODE = 3 ADOS.TYPE = 1 ADOS. Abierto Establecer ADOS1 = Server.CreateObject (ADODB.Stream) ADOS1.MODE = 3 ADOS1.TYPE = 1 ADOS1.Apen |
'Cargar 0 ~ 9 Datos digitales 10x100, datos de matriz GBR, cada uno de 320 bytes, 10 dígitos 3200 byte
'BGR un punto, 10x10 puntos un número, un punto tres bytes (8 bits en binario, 00 ~ ff en hexadecimal)
'Una línea de 10 puntos 30 bytes de la línea final de la línea 00 00 2 bytes 32 bytes, por lo que una imagen de 10x100 con un ancho menor que la longitud de cada número 10x10 es de 320 bytes
'Si la longitud es más grande que el ancho, no habrá una marca final de 0000, que es directamente 300 bytes.
Estos son los detalles de datos de BMP de 24 bits
'En cuanto a la cabeza, también es muy simple, incluyendo longitud y ancho, imagen de inicio de imagen, etc. ~~ Es solo 54 bytes, mucho menos complicados que JPG o algo
| ADOS.LOADFROMFILE (Server.Mappath (Body.fix)) ADOS1.WRITE ADOS.READ (1280) |
'El primero para el bucle, extraiga los cuatro números correspondientes de la matriz digital 10x100 en el orden de los números aleatorios generados
Pero la variedad vertical de números
| para i = 0 a 3 Ados.position = (9-zimg (i))*320 Ados1.position = i*320 ADOS1.WRITE ADOS.READ (320) próximo |
'Borre los datos de los ADO usados y llame al archivo de encabezado que reemplaza el nuevo encabezado de imagen 54 bytes
| ADOS.LOADFROMFILE (server.mappath (head.fix)) Pos = lenb (ados.read ()) ADOS.POSITION = POS |
'Especifique la posición POS y luego compense la posición en 54 bytes para agregar datos gráficos
El segundo para bucle realiza la transformación de la matriz de números, convirtiendo bloques verticales en bloques horizontales
El método es extraer 4 veces de 320 bytes y escribir al objeto ADOS, y luego extraer los datos de la imagen que se desplazan desde la segunda línea.
30 bytes se debe a que el ancho de BMP es mayor que largo sin 00 00 de la línea de la línea
| El siguiente es el contenido citado: para i = 0 a 9 paso 1 para j = 0 a 3 ADOS1.Position = I*32 J*320 ADOS.POSITION = POS 30*JI*120 ADOS.WRITE ADOS1.READ (30) próximo próximo Ados.position = 0 Response.BinaryWrite envía datos de imagen directamente al cliente Respuesta.ContentType = Image/BMP Response.BinaryWrite Ados.read () ADOS.CLOSE: establecer ADOS = nada ADOS1.CLOSE: establecer ADOS1 = nada Función final |
Compartir: sobre la separación del código y la página ASP Para evitar dificultades de mantenimiento causadas por la escritura mixta del código TML del programa ASP, este artículo presenta un método para usar plantillas para separar programas y páginas para facilitar la programación. Al usar ASP para crear un sitio, a menudo aparece un archivo ASP, el código de programa y HTM