]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/jpeg/drew/ExifReader.java
Version 12, December 2010
[GpsPrune.git] / tim / prune / jpeg / drew / ExifReader.java
index d4df892770e395569272099de5dcaa9279aba687..384778d7418a77544f60e8f5524adacf580c4040 100644 (file)
@@ -3,6 +3,7 @@ package tim.prune.jpeg.drew;
 import java.io.File;\r
 import java.util.HashMap;\r
 \r
+import tim.prune.jpeg.ExifGateway;\r
 import tim.prune.jpeg.JpegData;\r
 \r
 /**\r
@@ -93,8 +94,7 @@ public class ExifReader
         */\r
        public ExifReader(File inFile) throws JpegException\r
        {\r
-               JpegSegmentData segments = JpegSegmentReader.readSegments(inFile);\r
-               _data = segments.getSegment(JpegSegmentReader.SEGMENT_APP1);\r
+               _data = JpegSegmentReader.readExifSegment(inFile);\r
        }\r
 \r
        /**\r
@@ -343,14 +343,16 @@ public class ExifReader
                                        break;\r
                                case TAG_GPS_LATITUDE:\r
                                        Rational[] latitudes = readRationalArray(inTagValueOffset, inFormatCode, inComponentCount);\r
-                                       inMetadata.setLatitude(new double[] {latitudes[0].doubleValue(), latitudes[1].doubleValue(), latitudes[2].doubleValue()});\r
+                                       inMetadata.setLatitude(new double[] {latitudes[0].doubleValue(), latitudes[1].doubleValue(),\r
+                                               ExifGateway.convertToPositiveValue(latitudes[2].getNumerator(), latitudes[2].getDenominator())});\r
                                        break;\r
                                case TAG_GPS_LONGITUDE_REF:\r
                                        inMetadata.setLongitudeRef(readString(inTagValueOffset, inFormatCode, inComponentCount));\r
                                        break;\r
                                case TAG_GPS_LONGITUDE:\r
                                        Rational[] longitudes = readRationalArray(inTagValueOffset, inFormatCode, inComponentCount);\r
-                                       inMetadata.setLongitude(new double[] {longitudes[0].doubleValue(), longitudes[1].doubleValue(), longitudes[2].doubleValue()});\r
+                                       inMetadata.setLongitude(new double[] {longitudes[0].doubleValue(), longitudes[1].doubleValue(),\r
+                                               ExifGateway.convertToPositiveValue(longitudes[2].getNumerator(), longitudes[2].getDenominator())});\r
                                        break;\r
                                case TAG_GPS_ALTITUDE_REF:\r
                                        inMetadata.setAltitudeRef(_data[inTagValueOffset]);\r