// License: GPL. Copyright 2007 by Immanuel Scholz and others
package org.openstreetmap.josm.tools;
import java.io.File;
import java.text.ParseException;
import java.util.Date;
import java.util.Iterator;
import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;
/**
* Read out exif file information from a jpeg file
* @author Imi
*/
public class ExifReader {
@SuppressWarnings("unchecked") public static Date readTime(File filename) throws ParseException {
Date date = null;
try {
Metadata metadata = JpegMetadataReader.readMetadata(filename);
for (Iterator<Directory> dirIt = metadata.getDirectoryIterator(); dirIt.hasNext();) {
for (Iterator<Tag> tagIt = dirIt.next().getTagIterator(); tagIt.hasNext();) {
Tag tag = tagIt.next();
if (tag.getTagType() == 0x9003)
return DateParser.parse(tag.getDescription());
if (tag.getTagType() == 0x132 || tag.getTagType() == 0x9004)
date = DateParser.parse(tag.getDescription());
}
}
} catch (ParseException e) {
throw e;
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
}