我从文件加载位图图像。当我尝试将图像保存到另一个文件时,出现以下错误“GDI +中发生了一般性错误”。我相信这是因为该文件被图像对象锁定。使用GDI将修改后的图像保存到原始文件+
好吧,试着调用Image.Clone函数。这仍然锁定文件。
hmm。接下来,我尝试从FileStream加载位图图像并将图像加载到内存中,以便GDI +不锁定文件。这很好,除了我需要使用Image.GetThumbnailImage方法生成缩略图,它会引发内存不足异常。显然我需要保持流打开来停止这个异常,但如果我保持流打开,那么文件将保持锁定状态。
所以这种方法不好。最后我创建了一个文件的副本。所以现在我有两个版本的文件。 1我可以在我的c#程序中锁定和操作。这个其他原始文件保持解锁状态,我可以保存修改。这样做有额外的好处,即使在保存之后,我也可以恢复更改,因为我正在操作不能更改的文件副本。
当然,有一个更好的方法来实现这一点,而不必拥有2个版本的图像文件。有任何想法吗?
真棒。那做了这个工作。 Ty – Crippeoblade 2008-11-01 20:04:33