Apabila membaca imej daripada fail, adalah penting untuk mengesahkannya bagi memastikan ia adalah fail imej yang sah. Kegagalan untuk mengesahkan boleh membawa kepada pengecualian atau data yang rosak.
Pertimbangkan kod berikut yang memuatkan imej daripada fail:
string filePath = "image.jpg"; Image newImage = Image.FromFile(filePath);
If image.jpg ialah imej yang tidak sah, OutOfMemoryException akan dibuang. Ini kerana kaedah Image.FromFile cuba memuatkan keseluruhan imej ke dalam memori sebelum mengesahkannya.
Untuk menangani isu ini, fungsi pengesahan boleh digunakan. Berikut ialah contoh fungsi yang mengesahkan imej yang diberikan laluan fail:
bool IsValidImage(string fileName) { try { using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { byte[] header = new byte[8]; fs.Read(header, 0, 8); if (header[0] == 255 && header[1] == 216 && header[2] == 255 && (header[3] == 224 || header[3] == 225)) return true; } } catch (Exception) { return false; } return false; }
Fungsi ini membaca 8 bait pertama fail dan menyemak tandatangan pengepala. Jika pengepala sepadan dengan tandatangan imej JPEG yang sah, fungsi itu mengembalikan benar. Jika tidak, ia mengembalikan palsu.
Kod berikut menunjukkan cara menggunakan fungsi IsValidImage:
if (IsValidImage("image.jpg")) { // Load the image if it's valid. Image newImage = Image.FromFile("image.jpg"); } else { // Handle invalid image here. }
Dengan mengesahkan imej sebelum memuatkannya, anda boleh menghalang pengecualian dan memastikan bahawa hanya imej yang sah diproses. Fungsi IsValidImage yang disediakan dalam artikel ini menawarkan cara yang mudah dan berkesan untuk melaksanakan pengesahan imej.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Imej dalam C# Sebelum Memuatkannya untuk Mencegah Pengecualian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!