Dapatkan saiz imej dengan cekap
Dalam banyak tugas pemprosesan imej, menentukan saiz imej adalah penting. Walau bagaimanapun, kaedah tradisional untuk memuatkan keseluruhan fail imej adalah tidak cekap apabila hanya maklumat saiz diperlukan.
Nasib baik, terdapat cara alternatif untuk mendapatkan dimensi imej tanpa memuatkan keseluruhan fail. Satu teknik sedemikian ialah menganalisis maklumat pengepala imej, yang selalunya mengandungi maklumat seperti dimensi.
Untuk melaksanakan kaedah ini, adalah disyorkan untuk menggunakan perpustakaan pemprosesan imej yang telah diuji dengan baik yang menyokong berbilang format imej. Jika anda tidak boleh menggunakan pustaka, anda boleh menulis kod tersuai untuk menghuraikan pengepala imej.
Berikut ialah coretan kod sampel yang mengendalikan beberapa format imej biasa:
<code>// ... (代码已省略) ... public static Size GetDimensions(string path) { using (BinaryReader br = new BinaryReader(File.OpenRead(path))) { try { return GetDimensions(br); } catch (ArgumentException e) { if (e.Message.StartsWith("无法识别图像格式。")) { throw new ArgumentException("无法识别图像格式。", "path", e); } else { throw e; } } } } // ... (代码已省略) ... private static Size DecodeBitmap(BinaryReader br) { br.ReadBytes(16); int width = br.ReadInt32(); int height = br.ReadInt32(); return new Size(width, height); } // ... (其他格式解码器已省略) ...</code>
Teknik ini menyediakan cara yang lebih cekap untuk mendapatkan dimensi imej, terutamanya apabila bekerja dengan fail imej besar atau berbilang imej.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengambil Dimensi Imej Dengan Cekap Tanpa Memuatkan Keseluruhan Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!