Exifinterface

画像ファイルの EXIF タグの読み取りと書き込みを行います。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2024 年 11 月 13 日 1.3.7 - - 1.4.0-alpha01

依存関係の宣言

Exifinterface への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    implementation "androidx.exifinterface:exifinterface:1.3.7"
}

Kotlin

dependencies {
    implementation("androidx.exifinterface:exifinterface:1.3.7")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.4

バージョン 1.4.0-alpha01

2024 年 11 月 13 日

androidx.exifinterface:exifinterface:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 には、これらの commit が含まれています。

新機能

  • HEIF 画像から XMP データを読み取るサポートを追加しました。
  • AVIF 画像から Exif と XMP を読み取るサポートを追加しました。

API の変更

  • setGpsInfolocation パラメータが @Nullable であり、null を渡すと No-Op になることを明記しました。(If924cb/236484611

バグの修正

  • 無効な IFD オフセットを検出した後で解析を続行しました。(b/264729367
  • Exif データの前に JPEG APP1 マーカーが誤って含まれている WebP 画像を処理(b/281638358)。
  • 別の XMP セグメントを持つ JPEG の XMP 変更が、XMP 仕様でサポートされておらず、多くのツールで検出されない TIFF/Exif タグ 700 に書き込まれるのではなく、saveAttributes() によって同じ個別の XMP セグメントに保存されるようにします。
  • 保存時に、別のセグメントの XMP データを TIFF プレビュー ディレクトリに重複して保存しないようにしました(b/309843390)。
  • 浮動小数点数から有理数への変換の精度を改善。(b/312680558)。
  • getAttribute から返されたときに自動的に小数に変換される「従来型」の有理数タグに対して、有理数形式(x/y)を setAttribute に受け入れます(b/312680558)。
  • XMP がまだ含まれていない JPEG 画像に追加された XMP データが、XMP 仕様で指定されているように、別のセグメントに書き込まれるようにします。ExifInterface は、JPEG 画像の Exif 700 タグの XMP を優先するように記述されているため(仕様に違反)、既存の XMP データを含む画像の読み取り/書き込み時に、この動作が保持されます。
  • 高さまたは幅が 8191 ピクセルを超える WebP 画像を書き込む際の出力の破損を修正しました。(b/342697059
  • このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin デベロッパーは、次のコンパイラ引数を使用して、正しい使用を強制する必要があります。-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-modeI5cd0fb/326456246
  • 新しいプラットフォーム API へのアクセスの手動アウトラインを削除しました。これは、AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合、および AGP 8.1 以降(D8 バージョン 8.1 など)を使用するすべてのビルドで、API モデリングによって自動的に行われるためです。AGP を使用していないクライアントは、D8 バージョン 8.1 以降にアップデートすることをおすすめします。詳しくは、こちらの記事をご覧ください。(If6b4cb/345472586

バージョン 1.3.7

バージョン 1.3.7

2023 年 12 月 13 日

androidx.exifinterface:exifinterface:1.3.7 がリリースされました。バージョン 1.3.7 に含まれる commit については、こちらをご覧ください

バグの修正

  • サイズが大きすぎる JPEG APP1 セグメントの書き込みを試行したときに、ExifInterface.saveAttributes() から例外をスローします(以前は、長さが正しく切り捨てられた無効な APP1 セグメント(b/263747161)を書き込んでいました)。無効な IFD オフセットを検出した後で解析を続行します(以前は解析がすぐに停止し、正しくない値が返される可能性がありました(b/264729367))。

バージョン 1.3.6

バージョン 1.3.6

2023 年 2 月 8 日

androidx.exifinterface:exifinterface:1.3.6 がリリースされました。バージョン 1.3.6 に含まれる commit については、こちらをご覧ください

バグの修正

  • WebP VP8L チャンクからのアルファビットの読み取りを修正しました。(b/255405635

バージョン 1.3.5

バージョン 1.3.5

2022 年 10 月 24 日

androidx.exifinterface:exifinterface:1.3.5 がリリースされました。バージョン 1.3.5 に含まれる commit については、こちらをご覧ください

バグの修正

  • saveAttributes() が無効な WebP ファイルを生成する 2 つのケースを修正しました。

バージョン 1.3.4

バージョン 1.3.4

2022 年 10 月 5 日

androidx.exifinterface:exifinterface:1.3.4 がリリースされました。バージョン 1.3.4 に含まれる commit については、こちらをご覧ください

バグの修正

  • DNG ファイルに属性を保存する機能のサポートを終了しました。1.3.3 で追加されたサポートが不完全であり、破損したファイルが生成されていました。

バージョン 1.3.3

バージョン 1.3.3

2021 年 8 月 4 日

androidx.exifinterface:exifinterface:1.3.3 がリリースされました。バージョン 1.3.3 に含まれる commit については、こちらをご覧ください

バグの修正

  • サブセクション関連のタグの解析を修正しました。(aosp/1508143
  • setDataSource を呼び出すときに RuntimeException が発生しないように修正しました。(c8e66e9
  • skipBytes が無限にループしないよう修正しました。(fdbe88b
  • MediaMetadataRetriever から RuntimeException を取得するようになりました。(389b21a
  • DNG ファイルの属性を保存できるようになりました。(3017dbc
  • サムネイル以外のタグをサムネイルタグに置き換えます。(e1b916d

バージョン 1.3.2

バージョン 1.3.2

2020 年 12 月 2 日

androidx.exifinterface:exifinterface:1.3.2 がリリースされました。バージョン 1.3.2 に含まれる commit については、こちらをご覧ください

バグの修正

  • GPS_LATITUDEGPS_LONGITUDE に対して SRATIONAL を使用できるようにしました。
  • DateTime タグのセカンダリ形式(2020-01-01 00:00:00)の読み取りと書き込みのサポートを追加しました。
  • saveAttribute() の呼び出し中に元のファイルが一時的に削除されないようにしました。

バージョン 1.3.1

バージョン 1.3.1

2020 年 10 月 14 日

androidx.exifinterface:exifinterface:1.3.1 がリリースされました。バージョン 1.3.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • MediaProvider に画像データを保存できるように saveAttributes の実装を修正

バージョン 1.3.0

バージョン 1.3.0

2020 年 9 月 16 日

androidx.exifinterface:exifinterface:1.3.0 がリリースされました。バージョン 1.3.0 に含まれる commit については、こちらをご覧ください

1.2.0 以降の主な変更

  • VP8 または VP8L のチャンクのみを含むファイルが含まれるように拡張 WebP EXIF 書き込みサポートを追加しました。
  • サイズの大きい画像ファイルで OutOfMemory 例外を引き起こしていたため、不要なバッファリングを削除しました。
  • INVALID_DATE_TIME を削除しました。無効な日時の値を返すには、代わりに NULL を使用してください。
  • getGpsDateTime が無効な値に対して -1 の代わりに Long.MIN_VALUE を返すようにしました。

バージョン 1.3.0-rc01

2020 年 9 月 2 日

androidx.exifinterface:exifinterface:1.3.0-rc01 がリリースされました。1.3.0-beta01 からの変更はありません。バージョン 1.3.0-rc01 に含まれる commit については、こちらをご覧ください

バージョン 1.3.0-beta01

2020 年 8 月 19 日

androidx.exifinterface:exifinterface:1.3.0-beta01 がリリースされました。バージョン 1.3.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

  • VP8 または VP8L のチャンクのみを含むファイルが含まれるように拡張 WebP EXIF 書き込みサポートを追加しました。

API の変更

  • INVALID_DATE_TIME を削除しました。無効な日時の値を返すには、代わりに NULL を使用してください。

バグの修正

  • -1 は無効な値であるため、getGpsDateTime-1 の代わりに Long.MIN_VALUE を返すようになりました。
  • DateTime 関連のゲッターは、日付文字列のオフセット値(+/-)を考慮するようになりました。
  • サイズの大きい画像ファイルで OutOfMemory 例外を引き起こしていたため、不要なバッファリングを削除しました。
  • デフォルトの言語 / 地域を米国に設定しました。
  • 一時ファイルを作成する際に「.tmp」を追加する動作を、接頭辞を追加する動作に置き換えました。

バージョン 1.3.0-alpha01

2020 年 2 月 19 日

androidx.exifinterface:exifinterface:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください

API の変更

  • 新しいメソッド ExifInterface.getGpsDateTime() を追加しました。

バージョン 1.2.0

バージョン 1.2.0

2020 年 4 月 1 日

androidx.exifinterface:exifinterface:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください

1.1.0 以降の主な変更

  • PNG ファイルに EXIF を追加するためのサポートが追加されました
  • WebP ファイルと EXIF データのみのストリームのサポートを追加しました
  • 指定の MIME タイプがサポートされているかどうかを確認する API が追加されました
  • オフセット時間のタグ TAG_OFFSET_TIMETAF_OFFSET_TIME_DIGITIZEDTAG_OFFSET_TIME_ORIGINAL をさらに追加しました

バージョン 1.2.0-rc01

2020 年 2 月 19 日

androidx.exifinterface:exifinterface:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください

バグの修正

  • JPEG に XMP データが含まれている場合に JPEG ファイルが正しく保存されない問題を修正しました

バージョン 1.2.0-beta01

2019 年 12 月 18 日

androidx.exifinterface:exifinterface:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

  • PNG ファイルに EXIF を追加するためのサポートが追加されました
  • WebP ファイルからの EXIF を読み書きするためのサポートが追加されました
  • EXIF データのみのストリームのサポートが追加されました

API の変更

  • 指定の MIME タイプがサポートされているかどうかを確認する API が追加されました
  • 読み書き用 OffsetTime* タグを公開しました

バグの修正

  • getAttributeRange() に対して誤ったオフセットが返される問題を修正しました

バージョン 1.1.0

バージョン 1.1.0

2019 年 11 月 20 日

androidx.exifinterface:exifinterface:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください

1.0.0 以降の重要な変更

  • HEIF 形式と XMP タグのサポートを追加しました
  • File または FileDescriptor から ExifInterface オブジェクトを作成する場合のサポートを追加しました
  • 属性を取得するメソッド(hasAttributegetAttributeBytesgetAttributesRange)をさらに追加しました

バージョン 1.1.0-rc01

2019 年 10 月 9 日

androidx.exifinterface:exifinterface:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください

バグの修正

  • loadAttributes での ArrayIndexOutOfBoundsException を防止するため、欠落している形式名(IFD)を追加しました
  • saveAttributes の呼び出し中に例外が発生したとき、元のファイルが削除されるのを防止しました
  • ファイルを上書きした後に saveAttributes() を呼び出すときの例外に関する問題を修正しました

バージョン 1.1.0-beta01

2019 年 7 月 2 日

androidx.exifinterface:exifinterface:1.1.0-beta01 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能

  • @NonNull 引数に null が設定されている場合、NullPointerException をスローします
  • XMP タグのサポート

API の変更

  • 属性情報を取得するメソッドをさらに追加しました
  • hasAttributegetAttributeBytesgetAttributesRange

バグの修正

  • ファイル記述子のメモリリークの防止

バージョン 1.1.0-alpha01

2019 年 3 月 13 日

androidx.exifinterface:exifinterface:1.1.0-alpha01 がリリースされました。このバージョンに含まれる commit の完全なリストについては、こちらをご覧ください。

新機能

  • HEIF 形式のサポート

API の変更

  • ExifInterface のコンストラクタをさらに追加しました
  • タイプミスを修正: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

バグの修正

  • サムネイル画像がオーバーフローする可能性のチェックを修正(aosp/748608