Garder images persistante sur picturebox

Signaler
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour


Il y a un truc que je ne maitrise toujours pas bien avec les graphics :




1-je fais un graphics sur un bitmap crée a partir d'un picture box


     Image Zoom = new Bitmap(pb_zoom.Width, pb_zoom.Height);
      Graphics graphics = Graphics.FromImage(Zoom);


2- Je dessine des trucs dessus et puis j'assigne le bitmap au PB


      pb_zoom.Image = Zoom;

En faisant cela, j'ai une image de fond persistante sur laquelle je peux creer un nouveau graphics pour dessiner des images non persistantes



     Graphics TmpGraphics = pb_zoom.CreateGraphics();
      TmpGraphics.DrawLine(Pens.Black, pZoomRef, pcur);/CODE




Mais ce que j'aimerais faire c'est
1- Garder mon image de fond crée au debut
2- Redessiner des truc dessus qui ne disparaitront pas au moindre refresh
3- Recuperer mon image de fond quand l'utilisateur a fini de bricoler dans l'image.




Comment faire cela le plus facilement ?

5 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
Salut

Regardes  le post suivant
http://www.csharpfr.com/infomsg_PROBLEME-AVEC-PICTUREBOX_1101155.aspx

Tu trouveras peut etre la reponse a ton probleme
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
5
Salut

Le post que tu cite avec to code fais exactement ce que je fais déja
Le problème n'est pas la


Je le re-explique :

Ce que j'aimerais connaitre c'est la maniere la plus correcte de pouvoir exploiter plusieurs images permanente sur un PB

Si je cree un graphics a partir d'un bitmap genere dans le frame de mon picturebox que je dessine dessus et que j'assigne l'image au ¨PB (code dont j'ai donné l'exemple), cette image sera fixée et resitera aux refresh

Si je cre un graphics directement depuis mon PB je peux dessiner sur mon image mais ces dessins disparaitont apres un refresh ou un Paint


Ce que je voudrais faire c'est crer une image persistente A (premier exemple)


A partir de cette image dessiner une AUTRE image persistante B avec A en fond


Mais a tout moment pouvoir jeter B et revenir sur A


 
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Heu bah avec 2 images :
- créer A
- dessiner sur A
- créer B aux mêmes dimensions que A
- dessiner A sur B
- conserver A
- dessiner sur B

Au passage PictureBox est là pour afficher des images, pas vraiment pour servir de surface de dessin.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
5
Merci Coq

2 image, c'est effectivement ce que je me suis decidé de faire

J'esperais trouver un moyer pour "fixer" un graphics dans une image apres l'avoir dessiné mais c'est vraissemblablement pas possible.

NB : PB n'est pas la pour servir de surface de dessin .. OK mais qu'est ce qui est le plus approprié alors ?

Ce qui est en tout cas tres pratique avec PB c'est d'avoir directement les coordonées XY du frame sur un mouse move par exemple
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Au pire utilises un Panel, mais dans ton cas le mieux serait sans doute de réaliser un contrôle à part entière, ça te permettrait d'éviter de "polluer" le code extérieur et ça serait réutilisable.

/*
coq
MVP Visual C#
CoqBlog
*/