Bitmap.Save上的GDI +错误

时间:2009-08-05 21:29:23

标签: c#

我设法得到这样的东西在另一个项目中工作,但不是在我当前。 即使我在调用save之前处理了b位图,文件也会锁定并且在再次保存时不能被覆盖。知道我可能做错了什么?

Bitmap b = (Bitmap)Image.FromFile("image.png");
Bitmap bClone = (Bitmap)b.Clone();

    // modify bClone here..

b.Dispose();
b = null;
GC.Collect();

bClone.Save("image.png");

2 个答案:

答案 0 :(得分:1)

“克隆”方法无法执行您想要的操作。您可以使用位图的复制构造函数来创建包含相同像素的单独图像。

Bitmap bClone = null;
using (Bitmap b = (Bitmap)Image.FromFile("image.png"))
{
    bClone = new Bitmap(b);
    // modify bClone here..
}

bClone.Save("image.png");
bClone.Dispose();

答案 1 :(得分:0)

使用FromFile,您实际上无法控制文件对象的生命周期。请尝试使用FromStream。