Menyahkod Orientasi EXIF untuk Pembetulan Imej JPEG di Bahagian Pelanggan
Foto kamera digital sering menggunakan metadata EXIF untuk menentukan orientasinya. Walau bagaimanapun, pelayar biasanya mengabaikan maklumat ini, yang membawa kepada paparan imej yang salah pada aplikasi web. Isu ini timbul disebabkan oleh banyak kemungkinan orientasi yang boleh dimiliki oleh imej JPEG.
Untuk menangani isu ini, projek JavaScript-Load-Image menyediakan penyelesaian untuk memutar dan mencerminkan imej JPEG berdasarkan orientasi EXIF mereka. Ini memastikan paparan yang tepat dan pemprosesan imej yang seterusnya.
Ciri
Penyelesaian Contoh
Untuk memasukkan JavaScript-Load-Image ke dalam aplikasi anda, cuma masukkannya sebagai kebergantungan. Demonstrasi berikut menggambarkan cara menggunakan perpustakaan untuk memutar dan mencerminkan imej berdasarkan orientasi EXIF:
<code class="javascript">import loadImage from 'javascript-load-image'; const imageElement = document.getElementById('my-image'); loadImage(imageElement, (image) => { // Get the EXIF orientation value const orientation = image.exif && image.exif.Orientation; // Perform rotation and mirroring transformations based on orientation if (orientation) { const width = image.naturalWidth; const height = image.naturalHeight; const canvas = document.createElement('canvas'); canvas.width = width; canvas.height = height; const context = canvas.getContext('2d'); switch (orientation) { case 1: // Normal // No transformation required break; case 2: // Mirrored horizontally context.translate(width, 0); context.scale(-1, 1); break; case 3: // Rotated 180 degrees context.translate(width, height); context.rotate(Math.PI); break; case 4: // Mirrored vertically context.translate(0, height); context.scale(1, -1); break; case 5: // Rotated 90 degrees CCW, mirrored horizontally context.translate(0, width); context.rotate(-Math.PI / 2); break; case 6: // Rotated 90 degrees CCW context.translate(height, 0); context.rotate(Math.PI / 2); break; case 7: // Rotated 90 degrees CW, mirrored horizontally context.translate(width, 0); context.rotate(Math.PI / 2); context.scale(-1, 1); break; case 8: // Rotated 90 degrees CW context.translate(height, width); context.rotate(-Math.PI / 2); break; } context.drawImage(image, 0, 0); imageElement.src = canvas.toDataURL('image/jpeg'); } });</code>
Faedah
Dengan menggunakan JavaScript-Load-Image, anda boleh:
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Imej JPEG dengan Orientasi EXIF di Sebelah Pelanggan dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!