Graphics.Clear 给定的图像? C# 窗体
Graphics.Clear a given image? C# Winforms
我编写了这段代码以在我的 Winforms 应用程序的图片框中绘制图像,我想知道是否有一种方法可以清除单个图像而不是清除所有图像。
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?
感谢任何帮助或见解!
你不能。你将不得不重新绘制整个图片,没有你的 image.png。您的图形调用最终绘制到底层图形缓冲区(想想:原始像素数据)。当您在该底层图形缓冲区上绘制时,您会覆盖之前存在的内容,并且没有撤消操作之类的东西。
我编写了这段代码以在我的 Winforms 应用程序的图片框中绘制图像,我想知道是否有一种方法可以清除单个图像而不是清除所有图像。
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?
感谢任何帮助或见解!
你不能。你将不得不重新绘制整个图片,没有你的 image.png。您的图形调用最终绘制到底层图形缓冲区(想想:原始像素数据)。当您在该底层图形缓冲区上绘制时,您会覆盖之前存在的内容,并且没有撤消操作之类的东西。