我有PictureBox
张照片和Image
img,pic.Image = img
然后我使用
Graphics g = Grpahics.FromImage(pic.Image);
g.DrawRectangle(...);
但有一次,我想从图像中删除矩形,我试过
pic.Image = getOriginalImage();
pic.Refresh();
但图像保持不变(矩形仍在图像的顶部)
我知道有一种方法graphics.Clear(Color)
,但它用纯色替换整个图像
如何仅从PictureBox
删除图纸?
感谢
编辑: 我已经保存了原件,当我擦除时,我使用了原始图像
答案 0 :(得分:3)
您正在覆盖原始图像。在本地保存图像并将其克隆到PictureBox.Image属性中。当你想要删除时再次克隆
答案 1 :(得分:1)
使用Graphics.DrawImage()再次绘制背景图像,或者再次将图像指定给Image属性。以这种方式使用Graphics
对象是直接写入PictureBox
中显示的图像,并且它不会保留使用Graphics对象和背景图像写入的内容的单独副本。