Je cherche un moyen d'ajouter un filigrane sur l'image avec minime perte de qualité. Quelqu'un pourrait-il m'aider? Le filigrane peut être un texte ou une image.Ajout de filigrane sur l'image
Répondre
Que diriez-vous de cette méthode pour ajouter l'image en filigrane à l'image
public static void AddWaterMark(MemoryStream ms, string watermarkText, MemoryStream outputStream)
{
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
Graphics gr = Graphics.FromImage(img);
Font font = new Font("Tahoma", (float)40);
Color color = Color.FromArgb(50, 241, 235, 105);
double tangent = (double)img.Height/(double)img.Width;
double angle = Math.Atan(tangent) * (180/Math.PI);
double halfHypotenuse = Math.Sqrt((img.Height * img.Height) + (img.Width * img.Width))/2;
double sin, cos, opp1, adj1, opp2, adj2;
for (int i = 100; i > 0; i--)
{
font = new Font("Tahoma", i, FontStyle.Bold);
SizeF sizef = gr.MeasureString(watermarkText, font, int.MaxValue);
sin = Math.Sin(angle * (Math.PI/180));
cos = Math.Cos(angle * (Math.PI/180));
opp1 = sin * sizef.Width;
adj1 = cos * sizef.Height;
opp2 = sin * sizef.Height;
adj2 = cos * sizef.Width;
if (opp1 + adj1 < img.Height && opp2 + adj2 < img.Width)
break;
//
}
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;
gr.SmoothingMode = SmoothingMode.AntiAlias;
gr.RotateTransform((float)angle);
gr.DrawString(watermarkText, font, new SolidBrush(color), new Point((int)halfHypotenuse, 0), stringFormat);
gr.DrawImage(position, size, overlayImage) // It helps if your image-to-overlay is loaded from a PNG file (with transparency) to produce the best quality.
img.Save(outputStream, ImageFormat.Jpeg);
}
Cette méthode sauvegarde-t-elle l'image avec un filigrane de haute qualité? – Alexandre
oui il devrait être .... – rockyashkumar
Il ne compile pas à cause de cette ligne --- gr.DrawImage (position, size, overlayImage); position, taille et overlayImage sont indéfinis. – Alexandre
- 1. Ajout filigrane sur .png .jpg
- 2. Ajout filigrane avec PHP
- 3. Ajout d'un filigrane de texte
- 4. Ajout d'un filigrane à une JTextArea
- 5. Ajout d'un filigrane d'image invisible en C#?
- 6. Comment définir le texte de filigrane sur filigrane textbox
- 7. Texte de filigrane sur asp.net?
- 8. Ajout Javascript texte travail de filigrane ne marche pas
- 9. WPF filigrane PasswordBox de filigrane TextBox
- 10. Ajout d'un filigrane positionné dynamiquement à une vidéo via ffmpeg
- 11. Primefaces Filigrane sur Rich Calendar
- 12. Dilemme avec filigrane sur KeyDown
- 13. Filigrane VB.NET sur une image
- 14. Filigrane du centre sur l'image
- 15. Filigrane sur les images hotlinkées?
- 16. Ajouter un filigrane de texte au code de filigrane d'image
- 17. Filigrane PHP
- 18. Mootools de filigrane help
- 19. Datepicker Filigrane
- 20. ClearAll avec filigrane sur textbox dans WPF
- 21. Enregistrement d'un filigrane complexe sur l'image
- 22. Comment mettre en filigrane sur l'image?
- 23. Ajout d'un filigrane d'image à Pdf lors de la création à l'aide de iTextSharp
- 24. PyQt4 - Filigrane d'image
- 25. Htaccess et filigrane
- 26. FFmpeg libavfilter filigrane?
- 27. Rotation de filigrane dans codeigniter
- 28. image de filigrane dans CListCtrl
- 29. Filigrane et vignette - Codeigniter
- 30. jQuery watermarkinput plugin POSTs valeurs de filigrane sur le serveur
vous voulez un filigrane visible ou invisible? – ObscureRobot
Qu'est-ce que cela signifie dans un filigrane invisible? Transparent? J'ai plutôt besoin d'un filigrane transparent. – Alexandre
Les filigranes que vous décrivez existent dans les données d'image. Je parle de filigranes qui vivent dans les métadonnées ou qui se cachent dans la structure de données de l'image. Un exemple trivial serait l'insertion d'une chaîne de copyright dans les données EXIF. Un exemple plus sophistiqué impliquerait plusieurs morceaux de données EXIF apparemment non apparentés qui peuvent être combinés en une somme de contrôle. Ce que vous préférez dépend de votre objectif. – ObscureRobot