白旗製作所

JavaでJPEGのEXIF情報を読み取り

JPEG写真のEXIF情報をまとめて持ってくるため、
Javaで取得をしてみました。

EXIF情報取得には、METADATA EXTRACTORという
便利なライブラリがあるのでこれを使わせてもらいます。

EXIF情報は、情報によって格納されているディレクトリが異なるらしいので、
まずJPEGのメタデータを読み込んだあと、必要なディレクトリを読み込んで、情報を取り出します。
EXIF情報には何があるか、情報のタグ名、タグIDがどのようになっているかは、このサンプルが参考になります。

METADATA EXTRACTORを使ってJavaでEXIF情報読み込む例はこことかここにあるのですが、
情報が古く、最新のライブラリの仕様は変わっていてコードがそのままでは使えないため、
ライブラリの仕様に合わせてプログラムを変更します。
またいつ仕様も変更になるかわからないので、githubのGettingStartedを参考にするとよいでしょう。

試しに、以下のデータを読みだした例を置いておきます。
・カメラメーカー
・カメラモデル
・絞り値
・露出時間
・ISO感度
・露出
・焦点距離
・撮影日時

------------------------------------------
import java.io.File;
import java.util.Date;

import com.drew.imaging.ImageMetadataReader;
import com.drew.metadata.Metadata;
import com.drew.metadata.exif.ExifIFD0Directory;
import com.drew.metadata.exif.ExifSubIFDDirectory;

public class Main {
public static void main(String[] args) {

// メタデータを読み込み
File jpegFile = new File(fileName);
Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);

// EXIFのディレクトリ(情報種類)を読み込み
ExifIFD0Directory ifdDirectory = metadata.getDirectory(ExifIFD0Directory.class);
ExifSubIFDDirectory subIfdDirectory = metadata.getDirectory(ExifSubIFDDirectory.class);

// タグの値を読み込み
String maker = ifdDirectory.getString(ExifIFD0Directory.TAG_MAKE);
String cameraModel = ifdDirectory.getString(ExifIFD0Directory.TAG_MODEL);
String fNumber = subIfdDirectory.getString(ExifSubIFDDirectory.TAG_FNUMBER);
String exposureTime = subIfdDirectory.getString(ExifSubIFDDirectory.TAG_EXPOSURE_TIME);
String ISO = subIfdDirectory.getString(ExifSubIFDDirectory.TAG_ISO_EQUIVALENT);
String exposureBias = subIfdDirectory.getString(ExifSubIFDDirectory.TAG_EXPOSURE_BIAS);
String foculLength = subIfdDirectory.getString(ExifSubIFDDirectory.TAG_FOCAL_LENGTH);
Date date = subIfdDirectory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);

System.out.println(maker);

}
}
スポンサーサイト
  1. 2014/11/30(日) 09:16:26|
  2. Java
  3. | トラックバック:0
  4. | コメント:0
<<windows環境でTexWorksとBibTexを使う | ホーム | BufferedImageが遅い>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dededemio.blog.fc2.com/tb.php/20-6851f2fb
この記事にトラックバックする(FC2ブログユーザー)