Você sabe como usar o Adodb.stream para criar códigos de verificação de cores? Hoje, o editor do canal de tecnologia Foxin demonstra o método de operação para você em um exemplo. Espero que seja útil para você que aprenda esse conhecimento.
A cópia do código é a seguinte:Response.Buffer = true
NUMCODE
Função numCode ()
Response.Expires = -1
Response.addheader "Pragma", "No-Cache"
Response.addheader "cache-ctrol", "sem cache"
Dim Znum, i, j
Dim Ados, Ados1
Randomize Timer
Gerar números aleatórios de quatro dígitos:
Znum = Cint (8999*rnd+1000)
Passar para a sessão
Sessão ("getCode") = Znum
Isso para loop é colocar números aleatórios em uma matriz com o subscrito 3, que é conveniente para fornecer a transformação de matriz subsequente
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 dois objetos binários adodb.stream para operação de dados de imagem:
set ados = server.createObject ("adodb.stream")
Ados.mode = 3
Ados.type = 1
Ados.open
set ados1 = server.createObject ("adodb.stream")
Ados1.mode = 3
Ados1.type = 1
Ados1.open
'Carregar 0 ~ 9 dados digitais 10x100, dados da matriz GBR, cada um 320 byte, 10 dígitos 3200 byte
'BGR de um ponto, 10x10 pontos um número, um ponto três bytes (8 bits em binário, 00 00 00 00 00 00 em hexadecimal)
'Uma linha de 10 pontos 30 bytes + extremidade da linha Marca 00 00 2 bytes 32 bytes, então uma imagem de 10x100 com uma largura menor que o comprimento de cada dígito 10x10 é 320 bytes
'Se o comprimento for maior que a largura, não haverá marca final da linha 0000, diretamente 300 bytes
Estes são os detalhes de dados BMP 24bits
'Quanto à cabeça, também é muito simples, incluindo comprimento e largura, marcação de iniciar a imagem, etc. ~~ são apenas 54 bytes, muito menos complicados que JPG ou algo assim
Ados.loadfromfile (server.mappath ("body.fix")))
Ados1.write ados.read (1280)
'O primeiro para o loop extrai os quatro números correspondentes da matriz digital 10x100 na ordem de números aleatórios gerados
Mas uma variedade 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
'Limpe os dados do ADOS usado e ligue no arquivo de cabeçalho que substitui o novo cabeçalho da imagem 54 bytes
Ados.loadfromfile (server.mappath ("head.fix")))
Pos = lenb (ados.read ())
Ados.Position = POS 'Especifique a posição POS, e você pode compensar a posição por 54 bytes para adicionar dados gráficos
O segundo para o loop executa a transformação da matriz de números, convertendo blocos verticais em blocos horizontais
O método é extrair 4 vezes de 320 bytes e gravar no objeto ADOS e, em seguida, extrair os dados da imagem que são compensados da segunda linha.
30 bytes é porque a largura do BMP é maior que longa sem 00 00
para i = 0 a 9 Etapa 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 envia dados de imagem diretamente para o cliente
Response.ContentType = "Image/BMP"
Response.BinaryWrite ados.read ()
Ados.close: set ados = nada
Ados1.close: set ados1 = nada
Função final
O artigo acima é o editor do Erro New Technology Channel compilado por você usando o Adodb.stream para criar códigos de verificação de cores. Eu acredito que todos aprenderam esses métodos operacionais. O erro New Technology Channel Network continuará a organizar a experiência técnica para você. Espero que você continue prestando atenção para nós!