Hammings
Messages postés10Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention18 mai 2006
-
5 avril 2006 à 18:08
Hammings
Messages postés10Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention18 mai 2006
-
6 avril 2006 à 10:14
Bonjour,
Je souhaite insérer un texte dans une image BMP, en consultant la doc
C#, j'ai essayé de procédé ainsi (mais malheureusement ca ne marche pas)
1.[DllImport("gdi32", CharSet = CharSet.Auto)] // utilisation de TextOut.
2.static extern bool TextOut(IntPtr hDC, int x, int y, string text);
3....
4. Bitmap oB = new Bitmap("C:\\tempo\\Image.bmp");
5.Graphics gBitmap = Graphics.FromImage(oB);
6. IntPtr iHdcBitmap = gBitmap.GetHdc();
7.TextOut(iHdcBitmap, 10, 10, "Text à inserer dans mon image");
8.gBitmap.ReleaseHdc(iHdcBitmap);
9. gBitmap.Dispose();
le programme me pete une exception à la ligne 5 :Un objet Graphics ne
peut pas être créé à partir d'une image au format pixel indexé
Comment faire pour inserer un texte dans mon image "Image.bmp" qui est sur le disque?
Y'a-t-il un moyen plus simple en passant par Graphics.DrawString( ... ) [javascript:Insert_Emoticon('/imgs2/smile_question.gif'); ]
Hammings
Messages postés10Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention18 mai 2006 6 avril 2006 à 09:18
Merci pour ta réponse, mais j'ai eu la même erreur à l'excution sur la ligne 2 :
1) System.Drawing.Graphics Graphics = System.Drawing.Graphics.FromImage(Img); //génère une exception :Un objet Graphics ne peut pas être créé à partir d'une image au format pixel indexé
2)l'objet System.Drawing.SystemFonts.DefaultFont n'existe pas, j'ai du faire un
System.Drawing.Font font = new System.Drawing.Font("arial", 10);
(mais, je ne sais pas si ca marche car, je n'arrive pas à excuter le
programme jusqu'au bout...)
Merci par avance, à toute personne qui pourra m'éclairer...
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 6 avril 2006 à 09:32
Salut,
Le problème du SystemFonts qui n'existe pas vient surement du fait que vous n'utilisez pas la même version du Framework (j'imagine que tu as la version 1.1).
Pour l'exception, est-tu sur que ton image n'est pas en cours d'utilisation ailleurs ( et es-tu sur que le format de l'image est valide) ??
Graphics.DrawString("Nouveau Text à inserer dans mon image", font,
System.Drawing.Brushes.Black,new System.Drawing.PointF(100, 100));
TmpImg.Save("C:\\tempo\\newImage.bmp"); // la nouvelle image avec le
texte souhaité
et pour l'exception, en allant dans l'aide de la fonction System.Drawing.Graphics.FromImage, j'ai trouver l'explication (c'est bien expliquer en plus, y'a même un exemple tout prêt ;) )