Je dois ajouter un texte à une image si mon programme n'est pas activé. Ce texte devrait remplir toute l'image. Il devrait également envelopper et mettre à l'échelle pour s'adapter à l'image au besoin.C# Ajustement du cordon à l'image avec Wordwrap
J'ai trouvé beaucoup de solutions de travail pour ajouter ce texte à la taille de l'image. Mais dans tous les cas, il s'agit d'une seule ligne de texte, et je ne vais donc pas envelopper comme je le veux aussi.
Comment puis-je définir la taille de police en fonction de l'image et utiliser wordwrap?
EDIT: C'est une application winforms.
EDIT 2: Ce que j'ai essayé de faire:
FileStream fs = new FileStream(this.MasterPath + @"\***\***\***\" + file.Name, FileMode.Open, FileAccess.Read);
Image img = Image.FromStream(fs);
fs.Close();
Bitmap b = new Bitmap(img);
Graphics graphics = Graphics.FromImage(b);
string text = "Some Text";
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;
Font font = new Font("Arial", 120, FontStyle.Regular, GraphicsUnit.Pixel);
SolidBrush brush = new SolidBrush(Color.FromArgb(128, Color.Red));
Rectangle rec = new Rectangle(0, 0, b.Width, b.Height);
float sy = (float)b.Height/(float)1240; //I used 1240 and 1844 because on an image with
float sx = (float)b.Width/(float)1844; //this size the text had the right size
graphics.ScaleTransform(sx, sy);
graphics.DrawString(text, font, brush, rec, stringFormat);
b.Save(this.MasterPath + @"\***\***\***\" + file.Name, img.RawFormat);
img.Dispose();
b.Dispose();
Vous avez omis de mentionner l'application que vous faire? Win Forms, Web App, Application mobile, ...? Et pourquoi ne pas simplement créer une image par défaut qui peut être mise à l'échelle à la taille dont vous avez besoin? – Oceans
Oh désolé, c'est une application winforms. –
Je n'utilise pas d'image par défaut, car la relation entre la largeur et la hauteur de l'image cible est différente, donc le texte de l'image par défaut sera étiré ou si je centre l'image par défaut, ne couvrira pas toute l'image –