Haben Sie versucht, .net für die Bildverarbeitung zu verwenden? Bei einem kürzlich von der Firma durchgeführten Projekt waren viele Produktbilder in der Datenbank gespeichert, aber keines davon verfügte über Copyright-Informationen. Der Kunde forderte damals, dass alle Bilder mit dem Firmennamen gekennzeichnet sein sollten. Was sollten Sie zu diesem Zeitpunkt tun?
Obwohl ich noch ein Anfänger bin, gibt es immer noch viele Lösungen für dieses Problem, die wie folgt zusammengefasst werden können:
1. Verwenden Sie Grafikverarbeitungssoftware wie Photoshop usw. und verwenden Sie deren Stapelverarbeitungsfunktion, um diese Funktion zu erreichen, aber alle Mal fügt der Datenerfassungssachbearbeiter hinzu: Wenn man Bilder eingeben möchte, muss man sie verarbeiten, was sehr mühsam ist. Ich sehe, dass der Erfassungssachbearbeiter normalerweise sehr nett zu mir ist und mich jeden Tag mit einem Lächeln begrüßt. Kann ich es ertragen, zu quälen? ihr? Dieser Plan wurde abgelehnt.
2. Mit der reibungslosen Bildverarbeitung von .net wird das Firmenlogo automatisch hinzugefügt, wenn es zu den 10.000 besten Lösungen gehört im Jahr 2005. , machen Sie einfach, was Sie sagen.
Verwenden von System.Drawing;
mit System.IO;
using System.Drawing.Imaging;
private void AddTextToImg(string fileName,string text)
{
if(!File.Exists(MapPath(fileName)))
{
throw new FileNotFoundException("Die Datei existiert nicht!");
}
if(text == string.Empty)
{
zurückkehren;
}
//Sie müssen auch feststellen, ob es sich bei dem Dateityp um einen Bildtyp handelt, der hier nicht beschrieben wird.
System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));
Bitmap bitmap = new Bitmap(image,image.Width,image.Height);
Graphics g = Graphics.FromImage(bitmap);
float fontSize = 12.0f;
float textWidth = text.Length*fontSize; //Die Länge des Textes
// Definieren Sie unten einen rechteckigen Bereich und zeichnen Sie dann in diesem Rechteck schwarzen Text auf weißem Hintergrund
float rectX = 0;
float rectY = 0;
float rectWidth = text.Length*(fontSize+8);
float rectHeight = FontSize+8;
//Deklarieren Sie die rechteckige Domäne
RechteckF textArea = new RechteckF(rectX,rectY,rectWidth,rectHeight);
Schriftart font = new Font("宋体",fontSize);
Brush whiteBrush = new SolidBrush(Color.White); //Weißer Pinsel, der zum Zeichnen von Text verwendet wird
Brush blackBrush = new SolidBrush(Color.Black); //Schwarzer Pinsel, zeichne den Hintergrund mit
,
rectY,rectWidth,rectHeight);
MemoryStream ms = new MemoryStream( );
//Als JPG-Typ speichern
bitmap.Save(ms,ImageFormat.Jpeg);
//Das verarbeitete Bild ausgeben. Zur Vereinfachung der Demonstration zeige ich das Bild auf der Seite an.
Response.Clear();
Response.ContentType = "image/jpeg";
Response.BinaryWrite( ms.ToArray() );
g.Dispose();
bitmap.Dispose();
image.Dispose();
}
Der Aufruf ist sehr einfach:
AddTextToImg("me.jpg","Xiao Zhi");
Ich finde, dass .net in Asp wirklich leistungsfähig ist, aber sie können problemlos ausgeführt werden .Net-Umgebung. Fertig!