Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengelakkan Pengecualian GDI Apabila Menyimpan Imej ke MemoryStream Tertutup?

Bagaimana untuk Mengelakkan Pengecualian GDI Apabila Menyimpan Imej ke MemoryStream Tertutup?

Mary-Kate Olsen
Lepaskan: 2025-01-16 20:46:15
asal
974 orang telah melayarinya

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

Isu Penutupan Strim Memori dengan Imej.Save() dalam GDI

Masalah:

Apabila menyimpan imej menggunakan Imej .Save(...) dengan aliran memori, pembangun mungkin menghadapi pengecualian GDI jika aliran memori ditutup sebelum menyimpan. Walau bagaimanapun, dalam senario penciptaan imej dinamik, menutup strim sebelum menyimpan adalah perlu.

Senario Kod:

Bitmap image2;
using (Stream originalBinaryDataStream2 = new MemoryStream(data))
{
    image2 = new Bitmap(originalBinaryDataStream2);
}
Salin selepas log masuk

Dalam senario ini, strim memori originalBinaryDataStream2 ditutup apabila keluar dari blok menggunakan. Selepas itu, menyimpan imej imej2 menyebabkan pengecualian GDI.

Penyelesaian:

Memandangkan strim memori tidak memerlukan penutupan eksplisit, adalah tidak perlu untuk menutupnya secara manual. Walau bagaimanapun, menutup objek Bitmap akan menutup secara automatik strim memori yang berkaitan.

Bitmap image2;
using (Stream originalBinaryDataStream2 = new MemoryStream(data))
{
    image2 = new Bitmap(originalBinaryDataStream2);
}

image2.Dispose(); // Also closes the memory stream
Salin selepas log masuk

Dengan melupuskan Bitmap, strim memori ditutup dengan betul, memastikan imej boleh disimpan tanpa pengecualian.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Pengecualian GDI Apabila Menyimpan Imej ke MemoryStream Tertutup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan