Le texte du plan avec le Système.Le dessin?
J'ai le code suivant. Est-il un moyen facile de mettre un contour sur le texte que j'ai écris?
var imageEncoder = Encoder.Quality;
var imageEncoderParameters = new EncoderParameters(1);
imageEncoderParameters.Param[0] = new EncoderParameter(imageEncoder, 100L);
var productImage = GetImageFromByteArray(myViewModel.ProductImage.DatabaseFile.FileContents);
var graphics = Graphics.FromImage(productImage);
var font = new Font("Segoe Script", 24);
var brush = Brushes.Orange;
var container = new Rectangle(myViewModel.ContainerX, myViewModel.ContainerY, myViewModel.ContainerWidth, myViewModel.ContainerHeight);
var stringFormat = new StringFormat {Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center};
graphics.DrawString(customizationText, font, brush, container, stringFormat);
OriginalL'auteur Brian David Berman | 2010-11-17
Vous devez vous connecter pour publier un commentaire.
Oui. Au lieu de Cordon de serrage, utiliser la séquence suivante d'appels:
nouveau GraphicsPath
(crée un videGraphicsPath
)GraphicsPath.AddString
(leGraphicsPath
objet représente maintenant le contour du texte)Graphiques.DrawPath
(dessine les grandes lignes en toutPen
vous voulez)Si vous avez besoin d'utiliser
GraphicsPath.AddString
aux côtés deGraphics.DrawString
, vous avez besoin de convertir les tailles de police, parce queGraphics.DrawString
s'attend à “taille de point” alors queGraphicsPath.AddString
s'attend à “em” taille de. La formule de conversion est tout simplementemSize = g.DpiY * pointSize /72
.Voici un exemple de code:
Oui.
Merci pour cette info, j'ai fait tout ce que vous avez dit... Mais bien sûr, j'ai réalisé qu'il n'y a pas d'anti-aliasing, afin que le texte a l'air assez terrible. 🙁 Je ne sais pas quoi faire à ce sujet encore.
J'ai toujours mis
g.InterpolationMode = InterpolationMode.High;
,g.SmoothingMode = SmoothingMode.HighQuality;
,g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
etg.CompositingQuality = CompositingQuality.HighQuality;
. L'un de ces contrôles anti-aliasing pour les lignes et les formes.merci! J'ai fini par faire quelque chose le long des lignes de ce que vous avez dit, mais le super-critique de la partie I a été de ne pas comprendre est que j'ai été la création d'un texte sur un objet graphique qui avaient déjà de l'image sur laquelle le texte était censé aller, donc je pense que c'était plus mon problème. J'ai ensuite modifié mon code pour utiliser une Image distincte/contexte Graphique et ensuite copier le texte sur l'image une fois qu'elle a été rendue. Maintenant que tout fonctionne bien! Merci encore.
OriginalL'auteur Timwi