Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengesahkan Fail Imej dalam C# Sebelum Memuatkannya untuk Mencegah OutOfMemoryExceptions?
Menyemak Kesahihan Imej dalam C#
Apabila menggunakan kaedah Image.FromFile() untuk mendapatkan semula imej daripada fail , kemungkinan isu timbul apabila fail yang disediakan tidak sepadan dengan format imej yang ditentukan. Contohnya, memberikan nama "image.jpg" pada fail teks kosong boleh mencetuskan OutOfMemory Exception semasa Image.FromFile() dimuatkan. Untuk menangani isu ini, mekanisme diperlukan untuk mengesahkan imej berdasarkan aliran atau laluan fail tertentu.
Pengesahan Strim:
Fungsi IsValidImage( Strim imejStream) mengesahkan imej menggunakan strim. Untuk mencapai ini:
Laluan Fail Pengesahan:
Sama seperti pengesahan strim, IsValidImage(string fileName) boleh dilaksanakan menggunakan laluan fail. Pendekatan ini serupa dengan pengesahan strim, kecuali membaca bait terus daripada fail dan bukannya strim.
Pengesanan Format Imej Tersuai:
Untuk senario lanjutan di mana sambungan fail tidak boleh dipercayai, mekanisme pengesanan format imej tersuai boleh dilaksanakan. Satu pendekatan sedemikian melibatkan pemeriksaan bait imej:
public enum ImageFormat { bmp, jpeg, gif, tiff, png, unknown } public static ImageFormat GetImageFormat(byte[] bytes) { // Check bytes against image header signatures // ... return ImageFormat; }
Dengan menggunakan fungsi ini, imej boleh disahkan sebelum ia dimuatkan sepenuhnya ke dalam ingatan, mengurangkan kemungkinan pengecualian semasa Image.FromFile() memuatkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Fail Imej dalam C# Sebelum Memuatkannya untuk Mencegah OutOfMemoryExceptions?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!