bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010
-
30 mai 2007 à 14:44
bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010
-
31 mai 2007 à 10:52
Bonjour à tous,
Tite question très simple je pense maisà laquelle je ne trouve pas de réponse :
"Peut-on mettre un fond (d'une couleur blanche par exemple) derrière un texte écrit avec DrawString sur une image?"
En fait, quelle que soit la couleur prise lorsque j'écris un texte sur mon image, on ne distingue pas assez les lettres dans certains endroits. Je voudrais donc simplement mettre un ti background blanc à mon texte afin de voir ce qu'il y a d'écrit en toute circonstance.
Mon code pour écrire sur mon image est le suivant :
g.DrawString("Salut",
new
Font(
"Tahoma", taillepolice,
FontStyle.Bold),
new
SolidBrush(
Color.Red), X , Y
);
Voilà, si vous connaissez l'arguement à rajouter pour mettre un fond blanc derrière ce texte, faites-moi signe svp ;)
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201436 30 mai 2007 à 16:04
Essaye ce code : publicstaticImage DrawOutlinedText(string text, Font font, Color foreColor, Color lineColor, int lineWidth) {<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Bitmap retBitmap = null;
using (Graphics g = Graphics .FromHwnd(IntPtr.Zero)) {
bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010 31 mai 2007 à 10:13
Salut salut!
Alors je viens d'essayer ta technique et le souci c'est que ça marche pas car ça écrit pas SUR mon image actuele, ça en créé une autre...:( et puis le truc c'est que le texte change selon les images, c'est pas fixe (je susi dans une boucle)
Au pire j'ai pensé à une solution mais j'arrive pas à la mettre en place :
- écrire mon texte normalement avec:
g.DrawString("Salut", new
Font(
"Tahoma", taillepolice,
FontStyle.Bold),
new
SolidBrush(
Color.Red), X , Y
);
- puis écrire le meme texte avec la meme police, la meme taille et au meme endroit mais avec seulement un mode "fil de fer" ou Pen, et non plus le solidbrush...
Ca écrirait donc par dessus mon texte en laissant l'intérieur nickel et en traçant juste les contous...
Cependant, je ne trouve pas comment écrire un texte avec un Pen...
bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010 31 mai 2007 à 10:52
Bon, j'ai bidouillé une technique, pas très très belle niveau programation mais ça trace un rectangle blanc derrière mon texte lol, je vous la met ici pour info :
SizeF longueur = g.MeasureString(texte, new Font("Tahoma", taillepolice, FontStyle.Bold));
g.FillRectangle(new SolidBrush(Color.White),X, Y, longueur.Width, longueur.Height);
g.DrawString(texte, new Font("Tahoma", taillepolice, FontStyle.Bold), new SolidBrush(Color.Red), X, Y);
Et voilà les gens, ptetre que ça servira à quelqu'un un jour mais j'en doute vu le niveau de mon code...lol
En tout cas merci beaucoup à Sebmafate pour son aide précieuse ;)