在 .Net 中清除位图

Moh*_*lim 3 c# drawing gdi+ graphics2d winforms

我使用PictureBox控件绘制复杂的图表,为了优化性能,我对绘图的每一层使用缓存Bitmap,并将它们绘制在控件图像上,上层有透明背景,我需要清除它们并重新绘制在每一个变化。

假设Bitmap的Graphics类的g个实例,使用g.Clear(Color.White)在所有的东西上画一个白色的矩形,所以隐藏了下层,并在上面g.Clear(Color.Transparent)画了透明的矩形,这意味着什么都不做。

没有办法清除 Bitmap 使其恢复到原始状态吗?

HEW*_*now 5

private void btn_CancelImage_Click(object sender, EventArgs e)
    {
        DialogResult dialogResult = MessageBox.Show("Cancel and delete this Image?", "Cancel", MessageBoxButtons.YesNo);
        if (dialogResult == DialogResult.Yes)
        {
            ClearImage();
            pictureBox1.Refresh();
        }
        else if (dialogResult == DialogResult.No)
        {
            return;
        }
    }
    public void ClearImage()
    {
        Graphics g = Graphics.FromImage(ImageBitmap);
        g.Clear(Color.White);
    }
Run Code Online (Sandbox Code Playgroud)