GDI+ 中发生一般性错误,解决办法简单探索。

Bitmap.Save的时候出现这么一个错误,查了一下,说是文件占用之类的。

可是怎么测试都发现应该不是这个问题(事实上就是这个问题,闹了一个乌龙而已)。

描述下:

场景一:需要加载A图进行相关运算,最终保存成B,C,D图,没有异常。

场景二:加载了B图进行运算,最终保存成B,C,D图,出问题了。


反复查看了两个文件的详细信息,包括位深度、水平/垂直分辨率、扫描宽度。。。。(这些现在看来就跟南辕北辙一样)。

经过猜测、编程、测试,发现都不是以上原因,比如ImageCodecInfo,EncoderParameters都考虑了下。

然后突然就脑洞一开,在B之前加了一段System.IO.File.Delete(B);,场景二会抛出文件被占用的异常。

好大一个乌龙啊,GDI+异常都已经提示是External了,居然没注意,然后,请拍砖!


【注意】网上说的在保存文件时添加一个System.Drawing.Imaging.ImageFormat不完全对,这个跟我这里的异常虽然没有半点关系,但是影响我这里的算法,所以请具体问题具体分析。

你可能感兴趣的:(.NET)