]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/jpeg/drew/ExifReader.java
Version 10, May 2010
[GpsPrune.git] / tim / prune / jpeg / drew / ExifReader.java
similarity index 92%
rename from tim/prune/drew/jpeg/ExifReader.java
rename to tim/prune/jpeg/drew/ExifReader.java
index 0084b87b169a6b0913f386e677c34e15aaeb757f..50a72d0caffd37c987f9897b9ec2ff2860a83994 100644 (file)
@@ -1,8 +1,10 @@
-package tim.prune.drew.jpeg;\r
+package tim.prune.jpeg.drew;\r
 \r
 import java.io.File;\r
 import java.util.HashMap;\r
 \r
+import tim.prune.jpeg.JpegData;\r
+\r
 /**\r
  * Extracts Exif data from a JPEG header segment\r
  * Based on Drew Noakes' Metadata extractor at http://drewnoakes.com\r
@@ -336,25 +338,29 @@ public class ExifReader
                                inMetadata.setLatitudeRef(readString(inTagValueOffset, inFormatCode, inComponentCount));\r
                                break;\r
                        case TAG_GPS_LATITUDE:\r
-                               inMetadata.setLatitude(readRationalArray(inTagValueOffset, inFormatCode, inComponentCount));\r
+                               Rational[] latitudes = readRationalArray(inTagValueOffset, inFormatCode, inComponentCount);\r
+                               inMetadata.setLatitude(new double[] {latitudes[0].doubleValue(), latitudes[1].doubleValue(), latitudes[2].doubleValue()});\r
                                break;\r
                        case TAG_GPS_LONGITUDE_REF:\r
                                inMetadata.setLongitudeRef(readString(inTagValueOffset, inFormatCode, inComponentCount));\r
                                break;\r
                        case TAG_GPS_LONGITUDE:\r
-                               inMetadata.setLongitude(readRationalArray(inTagValueOffset, inFormatCode, inComponentCount));\r
+                               Rational[] longitudes = readRationalArray(inTagValueOffset, inFormatCode, inComponentCount);\r
+                               inMetadata.setLongitude(new double[] {longitudes[0].doubleValue(), longitudes[1].doubleValue(), longitudes[2].doubleValue()});\r
                                break;\r
                        case TAG_GPS_ALTITUDE_REF:\r
                                inMetadata.setAltitudeRef(_data[inTagValueOffset]);\r
                                break;\r
                        case TAG_GPS_ALTITUDE:\r
-                               inMetadata.setAltitude(readRational(inTagValueOffset, inFormatCode, inComponentCount));\r
+                               inMetadata.setAltitude(readRational(inTagValueOffset, inFormatCode, inComponentCount).intValue());\r
                                break;\r
                        case TAG_GPS_TIMESTAMP:\r
-                               inMetadata.setGpsTimestamp(readRationalArray(inTagValueOffset, inFormatCode, inComponentCount));\r
+                               Rational[] times = readRationalArray(inTagValueOffset, inFormatCode, inComponentCount);\r
+                               inMetadata.setGpsTimestamp(new int[] {times[0].intValue(), times[1].intValue(), times[2].intValue()});\r
                                break;\r
                        case TAG_GPS_DATESTAMP:\r
-                               inMetadata.setGpsDatestamp(readRationalArray(inTagValueOffset, inFormatCode, inComponentCount));\r
+                               Rational[] dates = readRationalArray(inTagValueOffset, inFormatCode, inComponentCount);\r
+                               inMetadata.setGpsDatestamp(new int[] {dates[0].intValue(), dates[1].intValue(), dates[2].intValue()});\r
                                break;\r
                        default: // ignore all other tags\r
                }\r