Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengesahkan Fail Imej dalam C# Sebelum Memuatkannya untuk Mencegah OutOfMemoryExceptions?

Bagaimanakah Saya Boleh Mengesahkan Fail Imej dalam C# Sebelum Memuatkannya untuk Mencegah OutOfMemoryExceptions?

Linda Hamilton
Lepaskan: 2024-12-29 14:44:13
asal
837 orang telah melayarinya

How Can I Validate Image Files in C# Before Loading Them to Prevent 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:

  • Baca beberapa bait pertama daripada strim untuk menentukan format imej.
  • Bandingkan bait yang diekstrak dengan tandatangan pengepala imej yang biasa digunakan (cth., BMP, GIF, PNG, TIFF, JPG).

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;
}
Salin selepas log masuk

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!

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