¿Has probado a usar .net para procesar imágenes? En un proyecto reciente llevado a cabo por la empresa, se almacenaron muchas imágenes de productos en la base de datos, pero ninguna de ellas tenía información de derechos de autor. En ese momento, el cliente solicitó que todas las imágenes estuvieran etiquetadas con el nombre de la empresa. En este momento, ¿qué debes hacer?
Aunque todavía soy un novato, todavía hay muchas soluciones a este problema, que se pueden resumir de la siguiente manera:
1. Utilice software de procesamiento de gráficos, como Photoshop, etc., y utilice su función de procesamiento por lotes para lograr esta función, pero cada vez que el empleado de entrada de datos agrega Si quieres ingresar imágenes, tienes que procesarlas, lo cual es muy problemático. Veo que el empleado de entrada suele ser muy amable conmigo y me saluda con una sonrisa todos los días. ¿su? Este plan fue rechazado.
2. Utilizando el procesamiento fluido de imágenes de .net, cuando el empleado de entrada cargue la imagen, agregará automáticamente el logotipo de la empresa. ¿No sería mejor? Bueno, esta es una buena idea. Se puede clasificar entre las 10.000 mejores soluciones. en 2005., hazlo como dices.
usando System.Drawing;
usando System.IO;
usando System.Drawing.Imaging
privado vacío AddTextToImg (nombre de archivo de cadena, texto de cadena)
{
if(!File.Exists(MapPath(nombre de archivo)))
{
throw new FileNotFoundException("¡El archivo no existe!");
}
si(texto == cadena.Vacío)
{
devolver;
}
// También debe determinar si el tipo de archivo es un tipo de imagen, que no se describirá aquí.
System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));
Mapa de bits mapa de bits = nuevo mapa de bits (imagen, imagen.Ancho, imagen.Alto);
Gráficos g = Graphics.FromImage(bitmap);
float fontSize = 12.0f //Tamaño de fuente
float textWidth = text.Length*fontSize //La longitud del texto
//Defina un área rectangular a continuación y luego dibuje texto negro sobre un fondo blanco en este rectángulo
flotador recX = 0;
flotador recY = 0;
float rectWidth = text.Length*(fontSize+8);
float rectHeight = fontSize+8;
//Declarar el dominio rectangular
RectánguloF área de texto = nuevo RectánguloF(rectX,rectY,rectWidth,rectHeight
Fuente fuente = nueva Fuente("宋体",fontSize);
Brush whiteBrush = new SolidBrush(Color.White); //Pincel blanco, usado para dibujar texto
Brush blackBrush = new SolidBrush(Color.Black); // Pincel negro, dibuja el fondo con
,
rectY,rectWidth,rectHeight);
MemoryStream ms = nuevo MemoryStream( );
//Guardar como tipo Jpg
bitmap.Save(ms,ImageFormat.Jpeg);
// Genera la imagen procesada Para facilitar la demostración, muestro la imagen en la página.
Respuesta.Clear();
Response.ContentType = "imagen/jpeg";
Respuesta.BinaryWrite( ms.ToArray() )
;
mapa de bits.Dispose();
imagen.Dispose();
}
La llamada es muy simple,
AddTextToImg("me.jpg","Xiao Zhi");
todo está bien. Siento que .net es realmente poderoso. Estas funciones son artículos de lujo en Asp, pero se pueden realizar fácilmente en el. Entorno .Net ¡Completo!