Afficher un dessin sur une image

Résolu
Signaler
Messages postés
56
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2006
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
-
Bonjour,
Je désirerais afficher un dessin au dessus d'une image. J'ai crée une pictureBox dans laquelle je charge une image. Ensuite je crée un Graphics sur ma pictureBox ( Graphics g = thisform.CreateGraphics(); ou thisform est la pictureBox). Et je dessine un rectangle sur mon graphics (g.DrawRectangle(p, SelectRect);).
Le problème est que le dessin apparait une fraction de seconde, et après semble soit être caché derière l'image soit disparaitre...
merci pour tout renseignement consernant ce problème.
Ced

6 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
dessine plutot sur l'image que tu affecteras ensuite au PictureBox

Cocoricoooooooo !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
charge ton image dans un objet Bitmap et tu ne devrais plus avoir de probleme il me semble

Cocoricoooooooo !!!!
Messages postés
56
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2006

Désolé mais comment fait-on pour dessiner sur une image puisque l'on ne peut pas v=créer de Grapjics dessus?
Ced
Messages postés
56
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2006

Je pense avoir ma réponse: il faut utiliser g = Graphics.FromImage(mon_image)? et travailler ensuite sur g?
merci
Ced
Messages postés
56
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
20 mars 2006

En fait il y a un petit problème: j'ai un message d'erreur lorsque j'utilise cette methode:

"Un objet Graphics ne peut être créer à partir d'une image au format pixel indexé."

Ced
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
Pas très claire ma réponse en fait lol

je pensais à quelque chose de ce genre là :
// chargement de l'image
Image img = Image.FromFile(imgPath);
// définition d'un Bitmap de la même taille
Bitmap bmp = new Bitmap(img.Width, img.Height);
// création du Graphics sur le Bitmap
Graphics g = Graphics.FromImage(bmp);
// dessin de l'image
g.DrawImageUnscaled(img, 0, 0);
// ton code de dessin
// affectation du Bitmap au PictureBox
pictureBox.Image = bmp;


il doit y avoir une meilleure manière de procéder mais dans l'immédiat je ne vois que ça

Cocoricoooooooo !!!!