begin process at 2010 02 10 08:51:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Multimédia

 > 

Image et Vidéo

 > 

Picturebox pb


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Picturebox pb

dimanche 13 août 2006 à 20:26:44 | Picturebox pb

SfyLer

Bonjour à tous,
voilà mon pb, j'ai un picturebox et je lui attribue une image bitmap.
ensuite je permet a l'utilisateur de redéssiné par dessus
seul pb quand je fais un picturebox.Image.Save(path...); tout ce que l'utilisateur à déssiné disparait.
Pouver vous m'aider ? c'est assez urgent
dimanche 13 août 2006 à 20:34:24 | Re : Picturebox pb

Bidou

Administrateur CodeS-SourceS
Réponse acceptée !

Salut,
Pfoulala c'est pas si facile que ça ;-)
Je pense que le moyen le plus facile que tu as encore, est de faire une capture de l'image (à vrai dire je ne suis même pas tout à fait sûr que ça marche).

Tu peux jeter un oeil sur ce snippet et sur ce tutorial de Mx pour voir de quoi je parle.



VC# forever
dimanche 13 août 2006 à 20:41:01 | Re : Picturebox pb

SfyLer

oui c'etait mon idée mais comme tu la dis c'est un peu chian a mettre en oeuvre
n'y aurai t'il pas une solution + simple ?
dimanche 13 août 2006 à 20:54:14 | Re : Picturebox pb

Bidou

Administrateur CodeS-SourceS
Euh non justement, la solution est relativement simple si tu fais une capture...
T'as qu'à regarder les deux liens que je t'ai filé!



VC# forever
dimanche 13 août 2006 à 21:02:32 | Re : Picturebox pb

Bidou

Administrateur CodeS-SourceS
Je viens de faire un petit test donc, et ça marche très bien



VC# forever
dimanche 13 août 2006 à 21:49:31 | Re : Picturebox pb

SfyLer

no pb, gentil d'avoir pris de ton tps, bonne continuation
dimanche 13 août 2006 à 21:55:59 | Re : Picturebox pb

SfyLer

après essai cela ne fonctionne pas, l'image du composant picturebox a bien été créé mais les traits rajouté par l'utilisateur n'aparaisse toujours pas
lundi 14 août 2006 à 04:45:13 | Re : Picturebox pb

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

"j'ai un picturebox et je lui attribue une image bitmap. ensuite je permet a l'utilisateur de redéssiné par dessus"

Tu dois dessiner avec le Graphics de l'image, utilise Graphic.FromImage pour le récupérer, ainsi tu dessinera directement sur l'image, pour voir les modifications tu dois invalider la PictureBox, PictureBox.Invalidate, et tu sauvegardes avec Picture.Image.Save.

public partial class Form1 : Form
{
    private Bitmap bitmap = null;
    private Graphics graphics = null;
    private PictureBox pictureBox = null;
    private Point startPoint = Point.Empty;

    public Form1( )
    {
        InitializeComponent( );

        bitmap = new Bitmap( "image.jpg" );
        graphics = Graphics.FromImage( bitmap );
       
        pictureBox = new PictureBox( );
        pictureBox.Dock = DockStyle.Fill;
        pictureBox.ContextMenu = new ContextMenu
        (
            new MenuItem[ ]
            {
                new MenuItem
                (
                    "Save",
                    PictureBox_SaveFile
                )
            }
        );
        pictureBox.Image = bitmap;
        pictureBox.MouseDown += PictureBox_MouseDown;
        pictureBox.MouseMove += PictureBox_MouseMove;

        this.Controls.Add( pictureBox );
    }
       

    private void PictureBox_SaveFile( object sd, EventArgs e )
    {
        SaveFileDialog saveFileDalog = new SaveFileDialog( );

        if ( saveFileDalog.ShowDialog( ) == DialogResult.OK )
            pictureBox.Image.Save( saveFileDalog.FileName );
    }

    private void PictureBox_MouseDown( object sd, MouseEventArgs e )
    {
        if ( e.Button == MouseButtons.Left )
            startPoint = e.Location;
    }

    private void PictureBox_MouseMove( object sd, MouseEventArgs e )
    {
        if ( e.Button == MouseButtons.Left )
        {
            GraphicsPath path = new GraphicsPath( );
            path.AddLine( startPoint, e.Location );
            startPoint = e.Location;

            graphics.DrawPath( Pens.Black, path );
            pictureBox.Invalidate( pictureBox.ClientRectangle );
        }
    }


Mais à mon avis tu devrais te passer de la PictureBox et dessiner sur un backbuffer puis l'afficher sur la forme ou sur un contrôle via Graphics.DrawImage.

lundi 14 août 2006 à 09:03:06 | Re : Picturebox pb

Bidou

Administrateur CodeS-SourceS
Lutinore> Tu es essayé ton code? Je ne suis pas sûr qu'il marche : après avoir fait un premier test, j'ai sauvé l'image et les dessins fait après coup n'apparaissait pas (j'ai fait un code rapide avec drawLine dans l'event MouseUp)! Puis j'ai mis la méthode de dessins dans le onPaint du pictureBox, et la ça marchait...

Dans ton exemple, si l'utilisateur clique sur un bouton après avoir fait ses modifications pour sauver la nouvelle image, je me demande si elles seront conservées étant donné que tu dessines dans le MouseMove (et si entre temps, l'application perd le focus et/ou une autre fenêtre passe par dessus?).



VC# forever
lundi 14 août 2006 à 09:21:22 | Re : Picturebox pb

Lutinore

Administrateur CodeS-SourceS
Oui ça marche, je dessine sur le bitmap, donc peu importe que la forme soit invalidée ou pas, mes dessins sont persistants.

1 2

Cette discussion est classée dans : pb, image, utilisateur, picturebox


Répondre à ce message

Sujets en rapport avec ce message

pb accès image [ par Blacknight91 ] Bl@cknightbonjour,Dans une application, j'affiche dans une pictureBox une image via cette propriété:pictureBox1.Image = Image.FromFile("C:\\mon_image. PictureBox Images [ par emmanuel9 ] Bonjour à tous, J'ai un logiciel et je cherche à ce que j'utilisateur puisse choisir une image lui correspondant comme dans yahoo ou msn. Donc j'ai pb de pictureBox [ par JCpp ] Bonjour,   Je voudrais superposer deux images avec le pictureBox. La 1er image est en BMP et par-dessus, il y a une image en GIF avec un backgrond pou Pb avec picturebox et objet Bitmap [ par Shogo6 ] Bonjour je suis au bord de la crise de neeeeerfs!!!!Voila je fais une visionneuse d'image donc on selectionne l'image desirée ds une listbox et elle s trouver le nom d'un picturebox déja dessiné [ par dinosors_evolution ] j'ai cree dynamiquement des image comme miniatureet je voudrais connaitre le nom de l'image lorsque je clique dessusalors j'ai ajouté un EventHandeler Picturebox : image + couleur transparente [ par brixi69 ] Bonjour !J'ai beau cherché une solution à mon problème mais en vain et pourtant ca doit être tout simple.Admettons que j'ai une "Form" avec une backgr Dupliquer une picturebox pour en changer la position [ par FOcaL69 ] Bonjour à tous,je désire créer une ou plusieurs PictureBox à partir d'une PictureBox déjà créée : jusque là pas de problème.Mon problème vient du fait Image aléatoire dans une picturebox [ par Jojo092 ] Bonjour à tous,et oui, j'ai en core un petit problème à vous exposer... Donc voilà j'ai une "picturebox" et une "imageList" avec uen collection d'imag Sauvegarder le contenu d'un picturebox dans un .bmp [ par guillaume_quest ] Bonjour à tous, Je voudrais exporter l'image contenue dans une picturebox vers un fichier image style BMP ou JPEG.Merci d'avance, Guillaume Deplacer une picturebox dans une tablelayoutpanel [ par JeanTeuF ] Bonjour tout le monde. Voila mon problème je dois faire un jeux en C# et vu que je suis debutant c'est pas facil :(. Je n'arrive pas à bien comprend


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales