X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fjpeg%2Fdrew%2FExifReader.java;h=384778d7418a77544f60e8f5524adacf580c4040;hp=d4df892770e395569272099de5dcaa9279aba687;hb=f35b6d628f68e3b5ef19965ad8988d0dd1eb8efa;hpb=3745d70b1427bb8ac1a085e47cbdc566936784e1 diff --git a/tim/prune/jpeg/drew/ExifReader.java b/tim/prune/jpeg/drew/ExifReader.java index d4df892..384778d 100644 --- a/tim/prune/jpeg/drew/ExifReader.java +++ b/tim/prune/jpeg/drew/ExifReader.java @@ -3,6 +3,7 @@ package tim.prune.jpeg.drew; import java.io.File; import java.util.HashMap; +import tim.prune.jpeg.ExifGateway; import tim.prune.jpeg.JpegData; /** @@ -93,8 +94,7 @@ public class ExifReader */ public ExifReader(File inFile) throws JpegException { - JpegSegmentData segments = JpegSegmentReader.readSegments(inFile); - _data = segments.getSegment(JpegSegmentReader.SEGMENT_APP1); + _data = JpegSegmentReader.readExifSegment(inFile); } /** @@ -343,14 +343,16 @@ public class ExifReader break; case TAG_GPS_LATITUDE: Rational[] latitudes = readRationalArray(inTagValueOffset, inFormatCode, inComponentCount); - inMetadata.setLatitude(new double[] {latitudes[0].doubleValue(), latitudes[1].doubleValue(), latitudes[2].doubleValue()}); + inMetadata.setLatitude(new double[] {latitudes[0].doubleValue(), latitudes[1].doubleValue(), + ExifGateway.convertToPositiveValue(latitudes[2].getNumerator(), latitudes[2].getDenominator())}); break; case TAG_GPS_LONGITUDE_REF: inMetadata.setLongitudeRef(readString(inTagValueOffset, inFormatCode, inComponentCount)); break; case TAG_GPS_LONGITUDE: Rational[] longitudes = readRationalArray(inTagValueOffset, inFormatCode, inComponentCount); - inMetadata.setLongitude(new double[] {longitudes[0].doubleValue(), longitudes[1].doubleValue(), longitudes[2].doubleValue()}); + inMetadata.setLongitude(new double[] {longitudes[0].doubleValue(), longitudes[1].doubleValue(), + ExifGateway.convertToPositiveValue(longitudes[2].getNumerator(), longitudes[2].getDenominator())}); break; case TAG_GPS_ALTITUDE_REF: inMetadata.setAltitudeRef(_data[inTagValueOffset]);