Android搭載端末でデバイスカメラを使用して写真を撮ってからサイズを変更すると(アップロードのサイズを小さくするのが非常に一般的です)、このサイズ変更操作がは、のexifメタデータを取り除いていることに気づかないでください。AndroidイメージEXIFデータのサイズ変更と保存(オリエンテーション、ローテーションなど)
この問題は、問題のデバイスがイメージを正しく表示するために 'Orientation'タグに依存している場合に特に問題を引き起こす可能性があります。
さまざまなAndroidデバイスがさまざまな方法でカメラ/画像の回転を処理します.Nexus Oneは常にキャプチャ直後に画像を回転させるように見えるので、ファイルのネイティブコンテンツは常に「直立」です。しかし、他のデバイス(私のテストでは特にサムスンの携帯電話)はではなく、イメージファイルの内容を回転させる - むしろexifのOrientationタグを設定する。画像が後で表示されるときはいつでも、関連する画像コードはオリエンテーション「タグ」の存在を検出し、画像を適切に回転させるべきである。しかし、イメージ上でビットマップ処理を行って新しいファイルに保存した場合、そのexifデータはすべて失われます。 などオリエンテーションデータに加えて、あなたはまた、このようなメイク/モデルとして、他の貴重なメタデータが失われる可能性があります
、
この
は、携帯電話のギャラリーに表示されたときに画像が直立表示されます(数週間のために私を混同したが、その後に到着します私のサーバーの向きが悪く、明らかなメタデータもない)。他の人を助けるためにここにこの自己質問を追加しています。このブログ記事は非常に有用だった:http://vikaskanani.wordpress.com/2011/07/17/android-re-size-image-without-loosing-exif-information/
ありがとうテオ、私はこの答えに感謝し、それを受け入れました。この情報の詳細については、リンクがありますか?「Android OSのバージョンによっては、ExifInterfaceによってEXIFデータが破損することがあります。」 –
これは私の経験に基づいており、ExifInterfaceがバグであることを最初に発見した人ではありません[1]。私が次の日にどれくらいの時間を取っているかによって、いくつかの事例をまとめて報告することができます。 [1] http://mail-archives.apache.org/mod_mbox/commons-issues/201106.mbox/%[email protected]e.org%3E – Theo
@Theo i 'あなたのコードをテストしましたが、一部のデバイスやイメージの属性のほとんどまたはすべてをコピーしているようです。よくコピーされない属性の例は、ISOSpeedRatings、FocalLength、FNumberです。どうやってそれを説明できますか? Android 4.4.2を搭載したnexus 4デバイスでテストし、元のファイルに作成されたExifInterfaceと新しいファイルを比較しました。 –