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不完全對,這個跟我這裏的異常雖然沒有半點關係,但是影響我這裏的算法,所以請具體問題具體分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章