Avez-vous essayé d'utiliser .net pour le traitement d'images ? Dans un projet récent réalisé par l'entreprise, de nombreuses photos de produits étaient stockées dans la base de données, mais aucune d'entre elles ne contenait d'informations de droit d'auteur. À cette époque, le client exigeait que toutes les photos soient étiquetées avec le nom de l'entreprise ? À ce moment-là, que devez-vous faire ?
Bien que je sois encore novice, il existe encore de nombreuses solutions à ce problème, qui peuvent être résumées comme suit :
1. Utilisez un logiciel de traitement graphique, tel que Photoshop, etc., et utilisez sa fonction de traitement par lots pour réaliser cette fonction, mais chaque temps, ajoute le commis à la saisie. Si vous voulez saisir des photos, vous devez les traiter, ce qui est très gênant. Je vois que le commis à la saisie est généralement très gentil avec moi et me salue tous les jours avec le sourire. Puis-je supporter de torturer. son? Ce projet a été rejeté.
2. Grâce au traitement d'image fluide de .net, lorsque le commis à l'entrée télécharge la photo, il ajoutera automatiquement le logo de l'entreprise. Ne serait-ce pas mieux ? Eh bien, c'est une bonne idée, elle peut être classée parmi les 10 000 meilleures solutions. en 2005. , faites-le comme vous le dites.
en utilisant System.Drawing ;
en utilisant System.IO ;
en utilisant System.Drawing.Imaging ;
privé void AddTextToImg (string fileName, string text)
{
if(!File.Exists(MapPath(fileName)))
{
throw new FileNotFoundException("Le fichier n'existe pas !");
}
if(text == string.Vide)
{
retour;
}
//Vous devez également déterminer si le type de fichier est un type d'image, ce qui ne sera pas décrit ici.
System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));
Bitmap bitmap = new Bitmap(image,image.Width,image.Height);
Graphiques g = Graphics.FromImage(bitmap);
float fontSize = 12.0f //Taille de la police
float textWidth = text.Length*fontSize; //La longueur du texte
//Définissez une zone rectangulaire en dessous, puis dessinez du texte noir sur fond blanc dans ce rectangle
flotteur rectX = 0 ;
float rectY = 0 ;
float rectWidth = text.Length*(fontSize+8);
float rectHeight = fontSize+8;
//Déclare le domaine rectangulaire
RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);
Font font = new Font("宋体",fontSize //Définir la police);
Brush whiteBrush = new SolidBrush(Color.White); //Pinceau blanc, utilisé pour dessiner du texte
Brush blackBrush = new SolidBrush(Color.Black); //Pinceau noir, dessinez l'arrière-plan avec
g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);
g.DrawString(text,font,whiteBrush,textArea);
MemoryStream ms = nouveau MemoryStream( );
//Enregistrer au format Jpg
bitmap.Save(ms,ImageFormat.Jpeg);
//Sortie de l'image traitée Pour faciliter la démonstration, j'affiche l'image sur la page.
Réponse.Clear();
Réponse.ContentType = "image/jpeg" ;
Response.BinaryWrite( ms.ToArray() );
g.Dispose();
bitmap.Dispose();
image.Dispose();
}
L'appel est très simple,
AddTextToImg("me.jpg","Xiao Zhi");
tout va bien. Je pense que .net est vraiment puissant. Ces fonctions sont des produits de luxe dans Asp, mais elles peuvent être facilement réalisées dans le système. Environnement .Net terminé !