問題:
使用Image 儲存影像時. Save(...) 使用記憶體流,如果在儲存之前關閉記憶體流,開發人員可能會遇到GDI 例外。但是,在動態影像建立場景中,儲存前需要關閉串流。
程式碼場景:
Bitmap image2; using (Stream originalBinaryDataStream2 = new MemoryStream(data)) { image2 = new Bitmap(originalBinaryDataStream2); }
此場景中,記憶體流originalBinaryDataStream2被關閉當退出 using 區塊時。隨後,儲存影像 image2 會導致 GDI 異常。
解:
由於記憶體流不需要明確關閉,因此無需手動關閉它們。不過,關閉 Bitmap 物件會自動關閉關聯的記憶體流。
Bitmap image2; using (Stream originalBinaryDataStream2 = new MemoryStream(data)) { image2 = new Bitmap(originalBinaryDataStream2); } image2.Dispose(); // Also closes the memory stream
透過處理 Bitmap,正確關閉記憶體流,確保影像能夠無異常地保存。
以上是將影像儲存到封閉的 MemoryStream 時如何避免 GDI 異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!