Garder images persistante sur picturebox

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 27 avril 2008 à 15:18
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 1 mai 2008 à 10:17
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 36
27 avril 2008 à 21:54
Salut

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

Tu trouveras peut etre la reponse a ton probleme
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
27 avril 2008 à 23:43
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


 
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
30 avril 2008 à 23:50
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
*/
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
1 mai 2008 à 09:28
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
1 mai 2008 à 10:17
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
*/
Rejoignez-nous