2

我有一张PictureBox图片和一张Image图片,pic.Image = img
我在图像上绘制了一些矩形

Graphics g = Grpahics.FromImage(pic.Image);
g.DrawRectangle(...);

但是在某一时刻,我想从图像中删除矩形,我试过了

pic.Image = getOriginalImage();
pic.Refresh();

但图像保持不变(矩形仍然在图像顶部)我知道有一种方法graphics.Clear(Color),但它用纯色替换整个图像
如何仅从图像中删除绘图PictureBox
谢谢

编辑:我已经保存了原始图像,当我擦除时我使用原始图像

4

2 回答 2

3

您正在覆盖原始图像。在本地保存图像并将其克隆到 PictureBox.Image 属性中。然后在要擦除时再次克隆

于 2012-10-01T03:23:20.547 回答
1

使用Graphics.DrawImage()再次绘制背景图像或将图像再次分配给 Image 属性。以这种方式使用Graphics对象是直接写入显示在图像中的图像,PictureBox并且它不会保留使用 Graphics 对象和背景图像写入的内容的单独副本。

于 2012-10-01T03:17:29.423 回答