ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で JPEG EXIF 回転データにアクセスするにはどうすればよいですか?

JavaScript で JPEG EXIF 回転データにアクセスするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 19:15:02701ブラウズ

How to Access JPEG EXIF Rotation Data in JavaScript?

ブラウザ側 JavaScript での JPEG EXIF 回転データへのアクセス

JPEG 画像を操作する場合、キャプチャされた元の方向情報を保持することが望ましいことがよくあります。カメラで。このデータは、JPEG ファイルの EXIF コンポーネントに保存されます。 JavaScript を使用してクライアント側でこのデータにアクセスするには、いくつかの手順に従います:

  1. JPEG ファイルを読み取ります:

    • FileReader API を使用して、ローカル JPEG ファイルを読み取るか、すでに画像要素 () として読み込まれている場合はリモート ソースからファイルを取得します。
  2. EXIF データを解析します:

    • ファイルが読み取られたら、その結果から DataView オブジェクトを作成することで EXIF データを抽出できます。
    • EXIF ヘッダー (0xFFE1) が見つかりました。
  3. 方向タグの検索:

    • EXIF データを解析して、方向タグ (0x0112)。タグの値は、必要な回転を度単位で表します。

これらの手順を実行する JavaScript コード スニペットの例を次に示します。

<code class="javascript">function getOrientation(file, callback) {
    var reader = new FileReader();
    reader.onload = function(e) {
        var view = new DataView(e.target.result);
        var orientation = -1;
        if (view.getUint16(0, false) == 0xFFD8) {
            var length = view.byteLength, offset = 2;
            while (offset < length) {
                var marker = view.getUint16(offset, false);
                if (marker == 0xFFE1) {
                    orientation = view.getUint16(offset + (i * 12) + 8, little);
                    break;
                }
                else if ((marker &amp; 0xFF00) != 0xFF00) {
                    break;
                }
                else {
                    offset += view.getUint16(offset, false);
                }
            }
        }
        callback(orientation);
    };
    reader.readAsArrayBuffer(file);
}</code>

このコードにはファイルが必要ですinput 要素を使用して JPEG ファイルを選択します。次に、ファイル オブジェクトを使用して getOrientation 関数を呼び出して向きの値を取得し、それに応じて画像を回転するために使用できます。

以上がJavaScript で JPEG EXIF 回転データにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。