-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
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