Graphics.Clear给定的图像? C#Winforms

时间:2016-07-16 16:18:22

标签: c# winforms graphics draw clear

我有代码这段代码在Winforms应用程序的Picture-box上绘制图像,我想知道是否有办法清除单个图像而不是清除所有内容。

public void DrawImage(Image img, Point pos)
    {
        if (GraphicsRenderer!=null)
        {
            GraphicsRenderer.DrawImage(img, pos);
        }
    }
DrawImage(Image.FromFile("image.png"), new Point(0, 0));

// then this to draw a rectangle
public void DrawRectangle(Rectangle rect, Pen pen)
    {
        if (GraphicsRenderer == null)
            GraphicsRenderer = Renderer.CreateGraphics();

        GraphicsRenderer.DrawRectangle(pen, rect);
    }
DrawRectangle(new Rectangle(new Point(0, 0), new Size(40, 40)), Pens.Red);

// now how do i clear only the image?

感谢任何帮助或见解!

1 个答案:

答案 0 :(得分:1)

你不能。你不得不重新绘制整个图片,而不是你的image.png。您的图形调用最终会绘制到底层图形缓冲区(想想:原始像素数据)。当您在底层图形缓冲区上绘制时,会覆盖之前的内容,并且不存在撤消操作。