Comment ne pas être limité par la taille de l'image à l'aide d'un gestionnaire d'images
-
12-09-2019 - |
Question
Je suis en train de convertir du texte à l'image. Une partie du texte est plus long que les autres.
Comment puis-je assurer qu'aucun du texte est tronqué?
Le code ci-dessous est de limiter ma bitmap à 250, 30.
System.Drawing.Bitmap imgIn = new System.Drawing.Bitmap(250, 30);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(imgIn);
g.Clear(System.Drawing.Color.White);
System.Drawing.Font font = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
Je suivais cet exemple: Comment convertir l'adresse e-mail ou une autre forme de texte TextBox à l'image
UPDATE
J'ai trouvé cet article qui a aidé à accomplir ma tâche: Générer l'image du texte en utilisant C # OU Convertir le texte à l'image dans l'aide C #
Après avoir été en mesure de redimensionner l'image en fonction de la longueur du texte, je découvre que je dois présenter des sauts de ligne dans le texte sinon l'image allait tout le chemin à Tombouctou quand
le texte était quelques phrases.
Comment puis-je présenter des sauts de ligne dans les textes longs?
La solution
Vous pouvez utiliser TextRenderer.MeasureText
pour obtenir la taille en pixels le texte.
Size size = TextRenderer.MeasureText("text", Font("Arial",10));
System.Drawing.Bitmap imgIn = new System.Drawing.Bitmap(size.Width, size.Height);
EDIT
J'ai trouvé cet article sur la façon d'écrire un gestionnaire HTTP qui va faire ce vous voulez, il enveloppe même texte pour l'adapter.
Autres conseils
Essayez celui-ci: http: // msdn .microsoft.com / fr-fr / bibliothèque / system.drawing.graphics.measurestring.aspx qui est sur System.Drawing.Graphics.