Bitmap.Save的时候出现这么一个错误,查了一下,说是文件占用之类的。
可是怎么测试都发现应该不是这个问题(事实上就是这个问题,闹了一个乌龙而已)。
描述下:
场景一:需要加载A图进行相关运算,最终保存成B,C,D图,没有异常。
场景二:加载了B图进行运算,最终保存成B,C,D图,出问题了。
反复查看了两个文件的详细信息,包括位深度、水平/垂直分辨率、扫描宽度。。。。(这些现在看来就跟南辕北辙一样)。
经过猜测、编程、测试,发现都不是以上原因,比如ImageCodecInfo,EncoderParameters都考虑了下。
然后突然就脑洞一开,在B之前加了一段System.IO.File.Delete(B);,场景二会抛出文件被占用的异常。
好大一个乌龙啊,GDI+异常都已经提示是External了,居然没注意,然后,请拍砖!
【注意】网上说的在保存文件时添加一个System.Drawing.Imaging.ImageFormat不完全对,这个跟我这里的异常虽然没有半点关系,但是影响我这里的算法,所以请具体问题具体分析。