Partage

Sauvegarder PictureBox avec changement

C#{

12 juin 2018 à 22:09:50

Bonjour.

J'ai un PictureBox où je dessine une forme à la main.

Après de très nombreuses recherche, je ne parviens pas à enregistrer les modification faites à la main. Beaucoup de post sur ce sujet existe, beaucoup disent qu'il faut modifier l'image et non le pictureBox, mais rien de concret au final.

Si vous pouviez me donner le petit truc qu'il me manque...

Merci

Voilà mon code:

C'est pour enregistrer que je n'y arrive pas...

 private void Form22_Load(object sender, EventArgs e)
        {
            bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            Panel pn = new Panel();
            pn.Size = pictureBox1.Size;
            pn.BackColor = Color.White;
            pn.DrawToBitmap(bmp, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
            pictureBox1.Image = bmp;
        }

        bool _mustFDraw;
        Point _previousPosition;
        Graphics _pbGraphics;

        Bitmap bmp;

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                _mustFDraw = true;
            }
        }

        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                _mustFDraw = false;
                _previousPosition = Point.Empty;
            }
        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (_mustFDraw)
            {

                _pbGraphics = pictureBox1.CreateGraphics();

                Point currentPosition = new Point(e.X, e.Y);

                if (_previousPosition == Point.Empty)
                {
                    _previousPosition = currentPosition;
                }

                _pbGraphics.DrawLine(Pens.Black, _previousPosition, currentPosition);
                _previousPosition = currentPosition;

            }
        }






        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            pictureBox1.Refresh();
            bmp = new Bitmap( pictureBox1.Image);

            bmp.Save(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) + "\\SIGNATURE.bmp");

        }



Vous êtes demandeur d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur web junior

Je postule
Formation
en ligne
Financée
à 100%
14 juin 2018 à 4:46:35

Bonjour à tous.

Comme dit, j'ai fais de très nombreuses recherche, et je n'avais rien trouvé.

MAIS: j'ai trouvé, et comme on est là pour partager, je vous donne le bout de code que j'ai mis dans mon button:

            var imagePath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) + "\\image.bmp";

            Image bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            var gg = Graphics.FromImage(bmp);
            var rect = pictureBox1.RectangleToScreen(pictureBox1.ClientRectangle);
            gg.CopyFromScreen(rect.Location, Point.Empty, pictureBox1.Size);

            bmp.Save(imagePath);

Ca enregistre une capture de mon écran à l'emplacement exacte de mon contrôle, donc, de mon pictureBox.

Bonne soirée

Sauvegarder PictureBox avec changement

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown