15

ブラウザにドラッグされた画像(jpeg)またはhtmlファイルの入力要素で選択された画像(jpeg)からEXIFデータを抽出しようとしています。

ここでFileReader and FileReader.readAsDataURL 説明するように、ブラウザ内で画像をプレビューすることができました。

そして、JavaScriptを介して画像のEXIFデータを抽出できるEXIFライブラリを見つけました。imgしかし、私にとっては、URLを介してコンテンツをロードする通常のタグで使用した場合にのみ機能します。

また、StackOverflowでこの質問を見つけました。受け入れられた回答では、それは不可能であると述べられています。

しかし、 500px.comは、アップロード用にファイルが追加された直後、アップロードが完了する前にEXIFデータを抽出するため、これを実現できると確信しています。

FileReaderから取得したbase64でエンコードされた画像からEXIFデータを抽出する方法についていくつかのアイデアがありますか?

4

3 に答える 3

16

私は最終的に問題のクライアント側の解決策を見つけました:

  1. FileReaderおよび メソッドを使用してファイルを読み取る.readAsBinaryString
  2. 次に、そのバイナリ文字列をEXIF ライブラリに既に含まれている BinaryFile オブジェクトにラップします
  3. 最後に電話EXIF.readFromBinaryFile(binaryFileObject);

そしてその完了:)

于 2012-04-27T07:12:04.723 に答える
4

jQuery-fileExif JavaScript ライブラリは、アップロード前に画像の exif データを読み取ります。
GitHub リンク、ライブラリのjsfiddleの例。

var someCallback = function(exifObject) {

    $('#cameraModel').val(exifObject.Model);
    $('#lat').val(exifObject.GPSLatitude);
    $('#lng').val(exifObject.GPSLongitude);
    // Uncomment the line below to examine the
    // EXIF object in console to read other values
    //console.log(exifObject);

  }

      try {
        $('#file').change(function() {
            $(this).fileExif(someCallback);
        });
      }
      catch (e) {
        alert(e);
      }
于 2012-12-29T12:10:24.813 に答える
3

FxIFFirefox拡張機能のコードを見てください。JavaScriptのみを使用してexifデータを読み取ります。ファイルの内容を読み取るには、最新のブラウザーのFileReaderAPIを使用できます。

于 2012-04-26T21:58:30.737 に答える