Bitmap.Save的時候出現這麼一個錯誤,查了一下,說是文件佔用之類的。
可是怎麼測試都發現應該不是這個問題(事實上就是這個問題,鬧了一個烏龍而已)。
描述下:
場景一:需要加載A圖進行相關運算,最終保存成B,C,D圖,沒有異常。
場景二:加載了B圖進行運算,最終保存成B,C,D圖,出問題了。
反覆查看了兩個文件的詳細信息,包括位深度、水平/垂直分辨率、掃描寬度。。。。(這些現在看來就跟南轅北轍一樣)。
經過猜測、編程、測試,發現都不是以上原因,比如ImageCodecInfo,EncoderParameters都考慮了下。
然後突然就腦洞一開,在B之前加了一段System.IO.File.Delete(B);,場景二會拋出文件被佔用的異常。
好大一個烏龍啊,GDI+異常都已經提示是External了,居然沒注意,然後,請拍磚!
【注意】網上說的在保存文件時添加一個System.Drawing.Imaging.ImageFormat不完全對,這個跟我這裏的異常雖然沒有半點關係,但是影響我這裏的算法,所以請具體問題具體分析。