首頁 > 後端開發 > C++ > 將影像儲存到封閉的 MemoryStream 時如何避免 GDI 異常?

將影像儲存到封閉的 MemoryStream 時如何避免 GDI 異常?

Mary-Kate Olsen
發布: 2025-01-16 20:46:15
原創
972 人瀏覽過

How to Avoid GDI  Exceptions When Saving Images to a Closed MemoryStream?

GDI 中Image.Save() 的記憶體流關閉問題

問題:

使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板