¿Sabes cómo usar ADODB.stream para crear códigos de verificación de color? Hoy, el editor de Foxin Technology Channel demuestra el método de operación para usted en un ejemplo. Espero que sea útil para ustedes que aprendan este conocimiento.
La copia del código es la siguiente:Respuesta.Buffer = True
Numorizar
Función numCode ()
Respuesta.expires = -1
Respuesta.AddHeader "Pragma", "No-Cache"
Respuesta.AddHeader "Cache-Ctrol", "No-Cache"
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 fila de 10 puntos 30 bytes + final de la línea 00 00 00 2 bytes 32 bytes, por lo que una imagen de 10x100 con un ancho menor que la longitud de cada dígito 10x10 es 320 bytes
'Si la longitud es mayor que el ancho, no habrá una marca final de línea 0000, 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 extrae 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 puede compensar la posición por 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
para i = 0 a 9 paso 1
para j = 0 a 3
ADOS1.Position = I*32+J*320
Ados.position = pos+30*j+i*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
El artículo anterior es el editor del canal Error nuevo de tecnología compilado por usted utilizando ADODB.Stream para crear códigos de verificación de color. Creo que todos han aprendido estos métodos operativos. El error de la red de canales de tecnología de error continuará organizando experiencia técnica para usted. ¡Espero que sigas prestando atención!