Java Apache Commons Imagingを使って、JPEG画像からExifデータを読み込む




JPEG画像には、画像データとともに、いろいろなデータが書き込まれています。

Apache Commons Imagingの入手

mavenを使って入手

pom.xmlは、こんな感じ。
今回は画像ファイル操作なので、Apache Commonsの中でも「Apache Commons Imaging」が対象。

手動で入手

手動で入手するのであれば、以下のjarを入手することになります。
「Apache Commons Imaging」は依存関係がないので、手動でも簡単に手に入れられますね。
https://mvnrepository.com/repos/central

  • commons-imaging-1.0-alpha3.jar

※2023年10月現在です。

ちなみに、Apache License 2.0で提供されています。

JPEG画像からExifデータを読み込むサンプル

Apache Commons Imagingを使って、JPEG画像からExifデータを読み込みます。

実行結果

このようなExifデータが取得できます。
経度・緯度は、京都駅あたりにしています。

サンプルの解説

Imaging.getMetadata(File)で画像ファイルを読み込むと、JpegImageMetadataが取得できます。
JpegImageMetadata#getExif()でExifデータを取得。
あとは、getTagName()で項目名。getValue()で値が取得できます。

この例では、少し手抜き省略していますが、値で返却される型は結構バラバラです。
たとえば、ImageWidth,ImageLengthは、java.lang.Short。Make,Modelは、java.lang.String。
GPSLatitude,GPSLongitudeは、org.apache.commons.imaging.common.RationalNumberの配列(度・分・秒)です。