How to save graphics created on a PictureBox?

后端 未结 2 1399
独厮守ぢ
独厮守ぢ 2020-12-12 02:05

In c# and Visual Studio Windows forms I have loaded an image into a picture box (pictureBox2) and then cropped it and show in another picture box (pictureBox3).

Now

2条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-12 03:05

    The method PictureBox.CreateGraphics() should not be used unless you know what you are doing because it can cause some not-so-obvious problems. For example, in you scenario, the image in pictureBox3 will disappear when you minimize or resize the window.

    A better way is to draw to a bitmap, which you also can save:

    var croppedImage = new Bitmap(pictureBox3.Width, pictureBox3.Height);
    var g = Graphics.FromImage(croppedImage);
    g.DrawImage(crop, new Point(0, 0), rectCropArea, GraphicsUnit.Pixel);
    g.Dispose();
    //Now you can save the bitmap
    croppedImage.Save(...);
    pictureBox3.Image = croppedImage;
    

    Btw, please use more reasonable variable names, especially for pictureBox1..3.

提交回复
热议问题