aspjpeg é um componente de processamento de imagem muito poderoso, versão em inglês puro. No entanto, já existem versões gratuitas e versões crackeadas, mas não existem muitos artigos que as apresentem em detalhes e profundidade. Mesmo que existam, envolvem apenas miniaturas e marcas d’água de imagens. Talvez seja porque está em inglês puro.
Aqui falarei sobre o uso avançado do aspjpeg com base nessas questões. As tecnologias aqui incluem principalmente:
Miniaturas de imagens, marcas d'água de imagens, tecnologia de código de segurança, corte de imagens, fusão de imagens, suporte de banco de dados, introdução de métodos mais incomuns e algumas tecnologias práticas relacionadas
A única deficiência do aspjpeg é que o método de saída é relativamente simples. Aqui falamos principalmente sobre esse método de saída que salva o processamento da imagem e depois o chama. Além disso, sou preguiçoso, por isso alguns códigos ainda são citados nos documentos originais e ocasionalmente explicarei o que não entendo!
Camaradas que estudaram VB ou .net certamente entenderão isso de relance. A escova está chegando. hehe.
1. Miniatura da imagem
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg") chama o componente
Path = Server.MapPath("images") & "clock.jpg" O caminho da imagem a ser processada
Jpeg.Open Path abre a imagem com metade da altura e largura da imagem original.
Jpeg.Largura = Jpeg.OriginalLargura / 2
Jpeg.Altura = Jpeg.OriginalAltura / 2
salvar imagem
Jpeg.Save Server.MapPath("imagens") & "clock_small.jpg"
%>
<IMG SRC="images/clock_small.jpg"> Ver imagens processadas
2. Marca d'água da imagem
<%
Definir Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath("imagens/dodge_viper.jpg")
Comece a escrever um texto
Jpeg.Canvas.Font.Color = &000000' cor vermelha
Jpeg.Canvas.Font.Family = Fonte "Courier New"
Jpeg.Canvas.Font.Bold = True se deve ser negrito
Jpeg.Canvas.Print 10, 10, "Copyright (c) XYZ, Inc."
Coordenada de impressão x Coordenada de impressão y Caracteres a serem impressos A seguir está o processamento da borda da imagem
Jpeg.Canvas.Pen.Color = &H000000' cor preta
Jpeg.Canvas.Pen.Width = 2 largura do pincel
Jpeg.Canvas.Brush.Solid = False se deve ser negrito
Jpeg.Canvas.Bar 1, 1, Jpeg.Largura, Jpeg.Altura
Coordenada X inicial Coordenada Y inicial comprimento de entrada altura de entrada
Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg") Salvar
%>
3. Código de segurança
O princípio do código de segurança é semelhante à adição de marca d'água. Muitos amigos me pedem uma tecnologia de codificação específica. Vou anotá-la e compartilhá-la com você aqui. hehe.
<%
Função para gerar código de segurança www.downcodes.com
função make_randomize(max_len,w_n) max_len gera comprimento, w_n: 0 pode conter letras, 1: apenas números
randomizar
para intcounter=1 para max_len
o que se segue=int((1-0+1)*rnd+w_n)
se o que vem a seguir = 0 então
superior = 122
inferior = 97
outro
superior=57
inferior = 48
terminar se
strnewpass=strnewpass & chr(int((superior-inferior+1)*rnd)+inferior)
próximo
make_randomize=strnewpass
função final
%>
Gere uma imagem do código de segurança. Claro que você precisa preparar uma imagem de fundo com antecedência
<%random_num=make_randomize(4,1) para gerar um código de segurança de 4 dígitos
session("random_num")=random_num Por que chamar session É completamente sem sentido sem o código de segurança da sessão. Haha
Set Jpeg = Server.CreateObject("Persits.Jpeg") chama o componente
Jpeg.Open Server.MapPath("infos/random_pic/random_index.gif") Abra a imagem preparada
Jpeg.Canvas.Font.Color = &H006699
Jpeg.Canvas.Font.Family = "Arial Preto"
Jpeg.Canvas.Font.Bold = falso
Jpeg.Canvas.PrintText 0, -2, num_aleatório
jpeg.save Server.MapPath("infos/random_pic/random_index.bmp") salvar
%> <img src="infos/random_pic/random_index.bmp" border="0" align="absmiddle">
Faça você mesmo. hehe.
4. Corte de imagens
Por muito tempo, quem não conhece o aspjpeg pensava que não poderia usá-lo para cortar.
Na verdade, existe tal método
cortar x1,y1,x2,y2
Corte a coordenada x do canto superior esquerdo do retângulo, e a coordenada y do canto inferior direito do retângulo darei uma demonstração abaixo.
Definir Jpeg = Server.CreateObject("Persits.Jpeg")
jpeg.open server.MapPath("/pic/1.gif")
jpeg.largura=70
Jpeg.Altura = Jpeg.OriginalHeight*70 / jpeg.Originawidth
jpeg.crop 0,0,70,52 Começar a cortar é na verdade remover a parte inferior que ultrapassa os 52 pixels.
jpeg.save server.MapPath("/temp_pic/small_1.gif") Que tal salvar? É muito simples.
5. Mesclagem de imagens
Aqui vamos adicionar a imagem do logotipo à imagem dodge_viper.jpg. Na verdade, o método de mesclagem de imagens também pode ser usado para adicionar marcas d’água dinamicamente.
Definir Foto = Server.CreateObject("Persits.Jpeg")
PhotoPath = Server.MapPath("imagens") & "dodge_viper.jpg"
Foto.Abrir PhotoPath
Definir logotipo = Server.CreateObject("Persits.Jpeg")
LogoPath = Server.MapPath("imagens") & "clock.jpg"
Logo.Open LogoPath
Logo.Width = 70
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth
Photo.DrawImage 0, 0, Logo
Photo.SendBinary O método de saída sendBinary é usado aqui. Claro, você também pode salvar o dodge_viper.jpg alterado primeiro e depois inseri-lo. Pessoalmente, não gosto de usar o método sendBinary porque ele está sujeito a erros quando a velocidade da rede é lenta. Também não muito em termos de velocidade. hehe.
6. Suporte a banco de dados
Não entrarei em detalhes aqui. Na verdade, é o método binário. Como todos sabemos, as imagens só podem ser armazenadas como arquivos binários quando armazenadas no banco de dados. Portanto, o código foi escrito preguiçosamente.
7. Mais métodos para apresentar
Canvas.Line(Left, Top, Right, Bottom)
desenhe uma linha reta
Canvas.Ellipse (Esquerda, Superior, Direita, Inferior)
desenhe uma elipse
Canvas.Circle(X, Y, Raio)
desenhe um círculo
Canvas.Bar (Esquerda, Superior, Direita, Inferior)
Desenhe um retângulo com o código introduzido nele
Canvas.Font.ShadowColor
cor da sombra do texto
Canvas.Font.ShadowXOffset tão longo
Configuração da coordenada Shadow X
Canvas.Font.ShadowYOffset tão longo
Configuração da coordenada Y
Canvas.Font.BkMode como string
fundo do texto
Autor deste artigo: Yulang Este artigo foi reimpresso e os direitos autorais pertencem ao autor original.