Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengakses Data Putaran JPEG EXIF ​​dalam JavaScript di Bahagian Pelanggan?

Bagaimana untuk Mengakses Data Putaran JPEG EXIF ​​dalam JavaScript di Bahagian Pelanggan?

Susan Sarandon
Lepaskan: 2024-11-04 07:28:31
asal
778 orang telah melayarinya

How to Access JPEG EXIF Rotation Data in JavaScript on the Client Side?

Mengakses Data Putaran JPEG EXIF ​​dalam JavaScript pada Bahagian Pelanggan

Masalah:

Berpusing foto berdasarkan putaran asalnya, seperti yang direkodkan dalam data JPEG EXIF, merupakan satu cabaran apabila bekerja dengan JavaScript dan imej tempatan dalam penyemak imbas.

Penyelesaian Sisi Pelanggan:

Untuk menangani masalah ini, kami memerlukan penyelesaian pihak pelanggan yang membolehkan JavaScript mengekstrak maklumat orientasi daripada data JPEG EXIF. Satu pendekatan melibatkan penggunaan FileReader API dan objek DataView:

<br>function getOrientation(fail, panggil balik) {<br> const reader = new FileReader();<br> reader.onload = (e) => {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">const view = new DataView(e.target.result);
if (view.getUint16(0, false) != 0xFFD8) return callback(-2);

let length = view.byteLength, offset = 2;
while (offset < length) {
  if (view.getUint16(offset+2, false) <= 8) return callback(-1);
  const marker = view.getUint16(offset, false);
  offset += 2;
  if (marker == 0xFFE1) {
    if (view.getUint32(offset += 2, false) != 0x45786966) return callback(-1);

    const little = view.getUint16(offset += 6, false) == 0x4949;
    offset += view.getUint32(offset + 4, little);
    const tags = view.getUint16(offset, little);
    offset += 2;
    for (let i = 0; i < tags; i++) {
      if (view.getUint16(offset + (i * 12), little) == 0x0112) {
        return callback(view.getUint16(offset + (i * 12) + 8, little));
      }
    }
  } else if ((marker &amp; 0xFF00) != 0xFF00) break;
  else offset += view.getUint16(offset, false);
}
return callback(-1);
Salin selepas log masuk

};
reader.readAsArrayBuffer(file);
}

Coretan kod ini menunjukkan penyelesaian pihak klien yang mengekstrak teg orientasi daripada data JPEG EXIF. Dengan menggunakan FileReader dan DataView, ia dengan pantas dan berkesan mendapatkan semula maklumat yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Data Putaran JPEG EXIF ​​dalam JavaScript di Bahagian Pelanggan?. 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
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan