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
Mary-Kate Olsenasal
2025-01-16 20:46:15985semak imbas

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);
}

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

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!

Kenyataan:
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