白旗製作所

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

twitter

プロフィール

dededemio

Author:dededemio
某電機メーカーエンジニア。
真空管からプログラミングまでゆるゆると。

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

Java (8)
未分類 (1)
真空管 (2)
キー配列 (2)
電子回路 (1)
マイコン (1)
PC部品 (2)
VPN (1)
Android (2)
opera (3)
C# (0)
プログラミング (1)
FTP (1)
メール (1)
tex (1)
音源 (2)
Ubuntu (1)
Python (5)
ブログパーツ (1)
GitHub (0)
Gist (1)
Vivaldi (1)
WICED Sense (2)
害虫駆除 (1)
自炊 (0)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QR