diff --git a/pom.xml b/pom.xml
index ad4af5a..f2f1ea5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -117,7 +117,7 @@
com.drewnoakes
metadata-extractor
- 2.4.0-beta-1
+ 2.6.2
javax.servlet
@@ -139,7 +139,7 @@
com.sleepycat
je
- 4.0.117
+ 4.0.92
org.springframework
@@ -241,7 +241,7 @@
test
-
+
central
diff --git a/src/main/java/org/forkalsrud/album/exif/DirectoryMetadataGenerator.java b/src/main/java/org/forkalsrud/album/exif/DirectoryMetadataGenerator.java
index 9c93392..adf8043 100644
--- a/src/main/java/org/forkalsrud/album/exif/DirectoryMetadataGenerator.java
+++ b/src/main/java/org/forkalsrud/album/exif/DirectoryMetadataGenerator.java
@@ -26,7 +26,8 @@ import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.MetadataException;
-import com.drew.metadata.exif.ExifDirectory;
+import com.drew.metadata.exif.ExifIFD0Directory;
+import com.drew.metadata.exif.ExifSubIFDDirectory;
import com.drew.metadata.jpeg.JpegDirectory;
public class DirectoryMetadataGenerator {
@@ -127,28 +128,29 @@ public class DirectoryMetadataGenerator {
Metadata metadata;
try {
metadata = JpegMetadataReader.readMetadata(f);
- Directory exifDirectory = metadata.getDirectory(ExifDirectory.class);
- if (exifDirectory.containsTag(ExifDirectory.TAG_ORIENTATION)) {
- int orientation = exifDirectory.getInt(ExifDirectory.TAG_ORIENTATION);
+ Directory exifDirectory = metadata.getDirectory(ExifIFD0Directory.class);
+ if (exifDirectory != null && exifDirectory.containsTag(ExifIFD0Directory.TAG_ORIENTATION)) {
+ int orientation = exifDirectory.getInt(ExifIFD0Directory.TAG_ORIENTATION);
props.put("orientation", nf.format(orientation));
hasOrientation = true;
}
- if (exifDirectory.containsTag(ExifDirectory.TAG_EXIF_IMAGE_WIDTH) &&
- exifDirectory.containsTag(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT)) {
- int width = exifDirectory.getInt(ExifDirectory.TAG_EXIF_IMAGE_WIDTH);
- int height = exifDirectory.getInt(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT);
+ Directory exifSubDirectory = metadata.getDirectory(ExifSubIFDDirectory.class);
+ if (exifSubDirectory != null && exifSubDirectory.containsTag(ExifSubIFDDirectory.TAG_EXIF_IMAGE_WIDTH) &&
+ exifSubDirectory.containsTag(ExifSubIFDDirectory.TAG_EXIF_IMAGE_HEIGHT)) {
+ int width = exifSubDirectory.getInt(ExifSubIFDDirectory.TAG_EXIF_IMAGE_WIDTH);
+ int height = exifSubDirectory.getInt(ExifSubIFDDirectory.TAG_EXIF_IMAGE_HEIGHT);
props.put("dimensions", new Dimension(width, height).toString());
hasDim = true;
}
- if (exifDirectory.containsTag(ExifDirectory.TAG_DATETIME_ORIGINAL)) {
- Date captureDate = getExifDate(exifDirectory, ExifDirectory.TAG_DATETIME_ORIGINAL);
+ if (exifSubDirectory != null && exifSubDirectory.containsTag(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL)) {
+ Date captureDate = getExifDate(exifSubDirectory, ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
if (captureDate != null) {
props.put("captureDate", sdf.format(captureDate));
hasDate = true;
}
}
- if (exifDirectory.containsTag(ExifDirectory.TAG_USER_COMMENT)) {
- String comment = exifDirectory.getString(ExifDirectory.TAG_USER_COMMENT);
+ if (exifSubDirectory != null && exifSubDirectory.containsTag(ExifSubIFDDirectory.TAG_USER_COMMENT)) {
+ String comment = exifSubDirectory.getString(ExifSubIFDDirectory.TAG_USER_COMMENT);
props.put("comment", comment);
}
Directory jpegDirectory = metadata.getDirectory(JpegDirectory.class);