aspjpeg es un componente de procesamiento de imágenes muy poderoso, versión puramente en inglés. Sin embargo, ya existen versiones gratuitas y versiones crackeadas, pero no hay muchos artículos que las presenten en detalle y en profundidad. Incluso si las hay, solo involucran miniaturas de imágenes y marcas de agua. Quizás sea porque está en inglés puro.
Aquí hablaré sobre el uso avanzado de aspjpeg basado en estos temas. Las tecnologías aquí incluyen principalmente:
Miniaturas de imágenes, marcas de agua de imágenes, tecnología de códigos de seguridad, corte de imágenes, fusión de imágenes, soporte de bases de datos, introducción de métodos menos comunes y algunas tecnologías prácticas relacionadas
El único inconveniente de aspjpeg es que el método de salida es relativamente simple. Aquí, hablamos principalmente de este método de salida que guarda el procesamiento de la imagen y luego lo llama. Además, soy vago, por lo que todavía se citan algunos códigos de los documentos originales y, de vez en cuando, explicaré lo que no entiendo.
Los camaradas que hayan estudiado VB o .net definitivamente lo entenderán de un vistazo. Se acerca el cepillo. jeje.
1. Miniatura de imagen
<%
Set Jpeg = Server.CreateObject("Persits.Jpeg") llama al componente
Path = Server.MapPath("images") & "clock.jpg" La ruta de la imagen a procesar
Jpeg.Open Path abre la imagen a la mitad de la altura y el ancho de la imagen original.
Jpeg.Ancho = Jpeg.AnchoOriginal / 2
Jpeg.Altura = Jpeg.AlturaOriginal / 2
salvar el imagen
Jpeg.Save Server.MapPath("imágenes") y "clock_small.jpg"
%>
<IMG SRC="images/clock_small.jpg"> Ver imágenes procesadas
2. Marca de agua de imagen
<%
Establecer Jpeg = Server.CreateObject ("Persits.Jpeg")
Jpeg.Open Server.MapPath("imágenes/dodge_viper.jpg")
Empezar a escribir texto
Jpeg.Canvas.Font.Color = &000000' color rojo
Jpeg.Canvas.Font.Family = Fuente "Courier New"
Jpeg.Canvas.Font.Bold = Verdadero si se pone en negrita
Jpeg.Canvas.Print 10, 10, "Copyright (c) XYZ, Inc."
Imprimir coordenada x Imprimir coordenada y Caracteres a imprimir El siguiente es el procesamiento de bordes de la imagen
Jpeg.Canvas.Pen.Color = &H000000' color negro
Jpeg.Canvas.Pen.Width = 2 ancho de pincel
Jpeg.Canvas.Brush.Solid = Falso si se pone en negrita
Jpeg.Canvas.Bar 1, 1, Jpeg.Ancho, Jpeg.Alto
Coordenada X inicial Coordenada Y inicial longitud de entrada altura de entrada
Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg") Guardar
%>
3. Código de seguridad
El principio del código de seguridad es similar a agregar una marca de agua. Muchos amigos me preguntan sobre una tecnología de codificación específica. La escribiré y la compartiré con ustedes aquí. jeje.
<%
Función para generar código de seguridad www.downcodes.com
función make_randomize(max_len,w_n) max_len genera longitud, w_n: 0 puede contener letras, 1: solo números
aleatorizar
para intcounter=1 a max_len
qué sigue=int((1-0+1)*rnd+w_n)
si lo que sigue = 0 entonces
superior=122
inferior=97
demás
superior=57
inferior=48
terminar si
strnewpass=strnewpass & chr(int((superior-inferior+1)*rnd)+inferior)
próximo
make_randomize=strnewpass
función final
%>
Generar una imagen del código de seguridad. Por supuesto, debes preparar una imagen de fondo con anticipación
<%random_num=make_randomize(4,1) para generar un código de seguridad de 4 dígitos.
session("random_num")=random_num ¿Por qué llamar a la sesión? No tiene ningún sentido sin el código de seguridad de la sesión. Jaja
Set Jpeg = Server.CreateObject("Persits.Jpeg") llama al componente
Jpeg.Open Server.MapPath("infos/random_pic/random_index.gif") Abra la imagen preparada
Jpeg.Canvas.Font.Color = &H006699
Jpeg.Canvas.Font.Family = "Arial Negro"
Jpeg.Canvas.Font.Bold = falso
Jpeg.Canvas.PrintText 0, -2, núm_aleatorio
jpeg.save Server.MapPath("infos/random_pic/random_index.bmp") guardar
%> <img src="infos/random_pic/random_index.bmp" border="0" align="absmiddle">
Hágalo usted mismo. jeje.
4. Corte de imágenes
Durante mucho tiempo, las personas que no conocen aspjpeg pensaron que no podían usarlo para cortar.
De hecho, existe tal método.
cultivo x1,y1,x2,y2
Corta la coordenada x de la esquina superior izquierda del rectángulo y la coordenada y de la esquina inferior derecha del rectángulo. Haré una demostración a continuación.
Establecer Jpeg = Server.CreateObject ("Persits.Jpeg")
jpeg.open server.MapPath("/pic/1.gif")
jpeg.ancho=70
Jpeg.Altura = Jpeg.OriginalHeight*70 / jpeg.Originawidth
jpeg.crop 0,0,70,52 Empezar a cortar es en realidad eliminar la parte inferior que supera los 52 píxeles.
jpeg.save server.MapPath("/temp_pic/small_1.gif") ¿Qué tal guardar? Es muy simple.
5. Fusión de imágenes
Aquí vamos a agregar la imagen del logotipo a la imagen dodge_viper.jpg. De hecho, el método de fusión de imágenes también se puede utilizar para agregar marcas de agua dinámicamente.
Establecer foto = Server.CreateObject("Persits.Jpeg")
PhotoPath = Server.MapPath("imágenes") & "dodge_viper.jpg"
Foto.Abrir PhotoPath
Establecer logotipo = Server.CreateObject("Persits.Jpeg")
LogoPath = Server.MapPath("imágenes") & "reloj.jpg"
Logo.Abrir LogoPath
Logo.Ancho = 70
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth
Photo.DrawImage 0, 0, Logo
Photo.SendBinary Aquí se utiliza el método de salida de sendBinary. Por supuesto, también puedes guardar el dodge_viper.jpg modificado primero y luego ingresarlo. Personalmente, no me gusta usar el método sendBinary porque es propenso a errores cuando la velocidad de la red es lenta. Tampoco mucho en términos de velocidad. jeje.
6. Soporte de bases de datos
No entraré en detalles aquí. De hecho, es el método binario. Como todos sabemos, las imágenes solo se pueden almacenar como archivos binarios cuando se almacenan en la base de datos. Entonces el código se escribió de manera perezosa.
7. Más métodos para presentar
Canvas.Line (Izquierda, Arriba, Derecha, Abajo)
dibujar una línea recta
Canvas.Ellipse(Izquierda, Arriba, Derecha, Abajo)
dibujar una elipse
Lienzo.Círculo(X, Y, Radio)
dibujar un circulo
Canvas.Bar(Izquierda, Superior, Derecha, Inferior)
Dibuja un rectángulo con el código introducido en él.
Lienzo.Fuente.ShadowColor
color de sombra de texto
Canvas.Font.ShadowXOffset mientras sea largo
Configuración de coordenadas de sombra X
Canvas.Font.ShadowYOffset mientras sea largo
Configuración de coordenadas Y
Canvas.Font.BkMode como cadena
fondo de texto
Autor de este artículo: Yulang Este artículo se reimprime y los derechos de autor pertenecen al autor original.