summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHung-ying Tyan <tyanh@google.com>2012-09-06 03:08:04 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-09-06 03:08:05 -0700
commit441381d3ca400972bd05f6659d456c7a227778a0 (patch)
tree946996fe240620334cb64f8f327abf52541b642c /src
parent0aa21cfcb47437ba3e3368828d472fb61729e7e4 (diff)
parentc27ecc21a04d901d8069dddd31a00d335e9ae097 (diff)
downloadandroid_packages_apps_Snap-441381d3ca400972bd05f6659d456c7a227778a0.tar.gz
android_packages_apps_Snap-441381d3ca400972bd05f6659d456c7a227778a0.tar.bz2
android_packages_apps_Snap-441381d3ca400972bd05f6659d456c7a227778a0.zip
Merge "Rearrange the constants in ExifTag" into gb-ub-photos-arches
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/app/CropImage.java4
-rw-r--r--src/com/android/gallery3d/exif/ExifData.java16
-rw-r--r--src/com/android/gallery3d/exif/ExifOutputStream.java26
-rw-r--r--src/com/android/gallery3d/exif/ExifParser.java14
-rw-r--r--src/com/android/gallery3d/exif/ExifTag.java760
5 files changed, 493 insertions, 327 deletions
diff --git a/src/com/android/gallery3d/app/CropImage.java b/src/com/android/gallery3d/app/CropImage.java
index f9254eefe..90eb8e5bb 100644
--- a/src/com/android/gallery3d/app/CropImage.java
+++ b/src/com/android/gallery3d/app/CropImage.java
@@ -394,12 +394,12 @@ public class CropImage extends AbstractGalleryActivity {
private void changeExifImageSizeTags(ExifData data, int width, int height) {
// FIXME: would the image size be too large for TYPE_UNSIGHED_SHORT?
- ExifTag tag = new ExifTag(ExifTag.TIFF_TAG.TAG_IMAGE_WIDTH,
+ ExifTag tag = new ExifTag(ExifTag.TAG_IMAGE_WIDTH,
ExifTag.TYPE_UNSIGNED_SHORT, 1, IfdId.TYPE_IFD_0);
tag.setValue(new int[] {width});
data.getIfdData(IfdId.TYPE_IFD_0).setTag(tag);
- tag = new ExifTag(ExifTag.TIFF_TAG.TAG_IMAGE_HEIGHT,
+ tag = new ExifTag(ExifTag.TAG_IMAGE_LENGTH,
ExifTag.TYPE_UNSIGNED_SHORT, 1, IfdId.TYPE_IFD_0);
tag.setValue(new int[] {height});
data.getIfdData(IfdId.TYPE_IFD_0).setTag(tag);
diff --git a/src/com/android/gallery3d/exif/ExifData.java b/src/com/android/gallery3d/exif/ExifData.java
index 88fa13cab..0c16cc9aa 100644
--- a/src/com/android/gallery3d/exif/ExifData.java
+++ b/src/com/android/gallery3d/exif/ExifData.java
@@ -149,18 +149,22 @@ public class ExifData {
gpsIfd = new IfdData(IfdId.TYPE_IFD_GPS);
addIfdData(gpsIfd);
}
- ExifTag latTag = new ExifTag(ExifTag.GPS_TAG.TAG_GPS_LATITUDE, ExifTag.TYPE_RATIONAL,
+ ExifTag latTag = new ExifTag(ExifTag.TAG_GPS_LATITUDE, ExifTag.TYPE_RATIONAL,
3, IfdId.TYPE_IFD_GPS);
- ExifTag longTag = new ExifTag(ExifTag.GPS_TAG.TAG_GPS_LONGITUDE, ExifTag.TYPE_RATIONAL,
+ ExifTag longTag = new ExifTag(ExifTag.TAG_GPS_LONGITUDE, ExifTag.TYPE_RATIONAL,
3, IfdId.TYPE_IFD_GPS);
- ExifTag latRefTag = new ExifTag(ExifTag.GPS_TAG.TAG_GPS_LATITUDE_REF,
+ ExifTag latRefTag = new ExifTag(ExifTag.TAG_GPS_LATITUDE_REF,
ExifTag.TYPE_ASCII, 2, IfdId.TYPE_IFD_GPS);
- ExifTag longRefTag = new ExifTag(ExifTag.GPS_TAG.TAG_GPS_LONGITUDE_REF,
+ ExifTag longRefTag = new ExifTag(ExifTag.TAG_GPS_LONGITUDE_REF,
ExifTag.TYPE_ASCII, 2, IfdId.TYPE_IFD_GPS);
latTag.setValue(toExifLatLong(latitude));
longTag.setValue(toExifLatLong(longitude));
- latRefTag.setValue(latitude >= 0 ? "N" : "S");
- longRefTag.setValue(longitude >= 0 ? "E" : "W");
+ latRefTag.setValue(latitude >= 0
+ ? ExifTag.GpsLatitudeRef.NORTH
+ : ExifTag.GpsLatitudeRef.SOUTH);
+ longRefTag.setValue(longitude >= 0
+ ? ExifTag.GpsLongitudeRef.EAST
+ : ExifTag.GpsLongitudeRef.WEST);
gpsIfd.setTag(latTag);
gpsIfd.setTag(longTag);
gpsIfd.setTag(latRefTag);
diff --git a/src/com/android/gallery3d/exif/ExifOutputStream.java b/src/com/android/gallery3d/exif/ExifOutputStream.java
index e9475c53e..9466faa58 100644
--- a/src/com/android/gallery3d/exif/ExifOutputStream.java
+++ b/src/com/android/gallery3d/exif/ExifOutputStream.java
@@ -270,8 +270,8 @@ public class ExifOutputStream extends FilterOutputStream {
ifd0 = new IfdData(IfdId.TYPE_IFD_0);
mExifData.addIfdData(ifd0);
}
- ExifTag exifOffsetTag = new ExifTag(ExifTag.TIFF_TAG.TAG_EXIF_IFD
- , ExifTag.TYPE_UNSIGNED_INT, 1, IfdId.TYPE_IFD_0);
+ ExifTag exifOffsetTag = new ExifTag(ExifTag.TAG_EXIF_IFD,
+ ExifTag.TYPE_UNSIGNED_INT, 1, IfdId.TYPE_IFD_0);
ifd0.setTag(exifOffsetTag);
// Exif IFD is required for all file.
@@ -284,7 +284,7 @@ public class ExifOutputStream extends FilterOutputStream {
// GPS IFD
IfdData gpsIfd = mExifData.getIfdData(IfdId.TYPE_IFD_GPS);
if (gpsIfd != null) {
- ExifTag gpsOffsetTag = new ExifTag(ExifTag.TIFF_TAG.TAG_GPS_IFD,
+ ExifTag gpsOffsetTag = new ExifTag(ExifTag.TAG_GPS_IFD,
ExifTag.TYPE_UNSIGNED_INT, 1, IfdId.TYPE_IFD_0);
ifd0.setTag(gpsOffsetTag);
}
@@ -292,7 +292,7 @@ public class ExifOutputStream extends FilterOutputStream {
// Interoperability IFD
IfdData interIfd = mExifData.getIfdData(IfdId.TYPE_IFD_INTEROPERABILITY);
if (interIfd != null) {
- ExifTag interOffsetTag = new ExifTag(ExifTag.EXIF_TAG.TAG_INTEROPERABILITY_IFD,
+ ExifTag interOffsetTag = new ExifTag(ExifTag.TAG_INTEROPERABILITY_IFD,
ExifTag.TYPE_UNSIGNED_INT, 1, IfdId.TYPE_IFD_EXIF);
exifIfd.setTag(interOffsetTag);
}
@@ -305,10 +305,10 @@ public class ExifOutputStream extends FilterOutputStream {
ifd1 = new IfdData(IfdId.TYPE_IFD_1);
mExifData.addIfdData(ifd1);
}
- ExifTag offsetTag = new ExifTag(ExifTag.TIFF_TAG.TAG_JPEG_INTERCHANGE_FORMAT,
+ ExifTag offsetTag = new ExifTag(ExifTag.TAG_JPEG_INTERCHANGE_FORMAT,
ExifTag.TYPE_UNSIGNED_INT, 1, IfdId.TYPE_IFD_1);
ifd1.setTag(offsetTag);
- ExifTag lengthTag = new ExifTag(ExifTag.TIFF_TAG.TAG_JPEG_INTERCHANGE_FORMAT_LENGTH,
+ ExifTag lengthTag = new ExifTag(ExifTag.TAG_JPEG_INTERCHANGE_FORMAT_LENGTH,
ExifTag.TYPE_UNSIGNED_INT, 1, IfdId.TYPE_IFD_1);
lengthTag.setValue(mExifData.getCompressedThumbnail().length);
ifd1.setTag(lengthTag);
@@ -318,9 +318,9 @@ public class ExifOutputStream extends FilterOutputStream {
mExifData.addIfdData(ifd1);
}
int stripCount = mExifData.getStripCount();
- ExifTag offsetTag = new ExifTag(ExifTag.TIFF_TAG.TAG_STRIP_OFFSETS,
+ ExifTag offsetTag = new ExifTag(ExifTag.TAG_STRIP_OFFSETS,
ExifTag.TYPE_UNSIGNED_INT, stripCount, IfdId.TYPE_IFD_1);
- ExifTag lengthTag = new ExifTag(ExifTag.TIFF_TAG.TAG_STRIP_BYTE_COUNTS,
+ ExifTag lengthTag = new ExifTag(ExifTag.TAG_STRIP_BYTE_COUNTS,
ExifTag.TYPE_UNSIGNED_INT, stripCount, IfdId.TYPE_IFD_1);
long[] lengths = new long[stripCount];
for (int i = 0; i < mExifData.getStripCount(); i++) {
@@ -336,20 +336,20 @@ public class ExifOutputStream extends FilterOutputStream {
int offset = TIFF_HEADER_SIZE;
IfdData ifd0 = mExifData.getIfdData(IfdId.TYPE_IFD_0);
offset = calculateOffsetOfIfd(ifd0, offset);
- ifd0.getTag(ExifTag.TIFF_TAG.TAG_EXIF_IFD).setValue(offset);
+ ifd0.getTag(ExifTag.TAG_EXIF_IFD).setValue(offset);
IfdData exifIfd = mExifData.getIfdData(IfdId.TYPE_IFD_EXIF);
offset = calculateOffsetOfIfd(exifIfd, offset);
IfdData interIfd = mExifData.getIfdData(IfdId.TYPE_IFD_INTEROPERABILITY);
if (interIfd != null) {
- exifIfd.getTag(ExifTag.EXIF_TAG.TAG_INTEROPERABILITY_IFD).setValue(offset);
+ exifIfd.getTag(ExifTag.TAG_INTEROPERABILITY_IFD).setValue(offset);
offset = calculateOffsetOfIfd(interIfd, offset);
}
IfdData gpsIfd = mExifData.getIfdData(IfdId.TYPE_IFD_GPS);
if (gpsIfd != null) {
- ifd0.getTag(ExifTag.TIFF_TAG.TAG_GPS_IFD).setValue(offset);
+ ifd0.getTag(ExifTag.TAG_GPS_IFD).setValue(offset);
offset = calculateOffsetOfIfd(gpsIfd, offset);
}
@@ -361,7 +361,7 @@ public class ExifOutputStream extends FilterOutputStream {
// thumbnail
if (mExifData.hasCompressedThumbnail()) {
- ifd1.getTag(ExifTag.TIFF_TAG.TAG_JPEG_INTERCHANGE_FORMAT).setValue(offset);
+ ifd1.getTag(ExifTag.TAG_JPEG_INTERCHANGE_FORMAT).setValue(offset);
offset += mExifData.getCompressedThumbnail().length;
} else if (mExifData.hasUncompressedStrip()){
int stripCount = mExifData.getStripCount();
@@ -370,7 +370,7 @@ public class ExifOutputStream extends FilterOutputStream {
offsets[i] = offset;
offset += mExifData.getStrip(i).length;
}
- ifd1.getTag(ExifTag.TIFF_TAG.TAG_STRIP_OFFSETS).setValue(offsets);
+ ifd1.getTag(ExifTag.TAG_STRIP_OFFSETS).setValue(offsets);
}
return offset;
}
diff --git a/src/com/android/gallery3d/exif/ExifParser.java b/src/com/android/gallery3d/exif/ExifParser.java
index 72b479bed..dfa818409 100644
--- a/src/com/android/gallery3d/exif/ExifParser.java
+++ b/src/com/android/gallery3d/exif/ExifParser.java
@@ -471,33 +471,33 @@ public class ExifParser {
*/
private void checkOffsetOrImageTag(ExifTag tag) {
switch (tag.getTagId()) {
- case ExifTag.TIFF_TAG.TAG_EXIF_IFD:
+ case ExifTag.TAG_EXIF_IFD:
if (isIfdRequested(IfdId.TYPE_IFD_EXIF)
|| isIfdRequested(IfdId.TYPE_IFD_INTEROPERABILITY)) {
registerIfd(IfdId.TYPE_IFD_EXIF, tag.getUnsignedInt(0));
}
break;
- case ExifTag.TIFF_TAG.TAG_GPS_IFD:
+ case ExifTag.TAG_GPS_IFD:
if (isIfdRequested(IfdId.TYPE_IFD_GPS)) {
registerIfd(IfdId.TYPE_IFD_GPS, tag.getUnsignedInt(0));
}
break;
- case ExifTag.EXIF_TAG.TAG_INTEROPERABILITY_IFD:
+ case ExifTag.TAG_INTEROPERABILITY_IFD:
if (isIfdRequested(IfdId.TYPE_IFD_INTEROPERABILITY)) {
registerIfd(IfdId.TYPE_IFD_INTEROPERABILITY, tag.getUnsignedInt(0));
}
break;
- case ExifTag.TIFF_TAG.TAG_JPEG_INTERCHANGE_FORMAT:
+ case ExifTag.TAG_JPEG_INTERCHANGE_FORMAT:
if (isThumbnailRequested()) {
registerCompressedImage(tag.getUnsignedInt(0));
}
break;
- case ExifTag.TIFF_TAG.TAG_JPEG_INTERCHANGE_FORMAT_LENGTH:
+ case ExifTag.TAG_JPEG_INTERCHANGE_FORMAT_LENGTH:
if (isThumbnailRequested()) {
mJpegSizeTag = tag;
}
break;
- case ExifTag.TIFF_TAG.TAG_STRIP_OFFSETS:
+ case ExifTag.TAG_STRIP_OFFSETS:
if (isThumbnailRequested()) {
if (tag.hasValue()) {
for (int i = 0; i < tag.getComponentCount(); i++) {
@@ -512,7 +512,7 @@ public class ExifParser {
}
}
break;
- case ExifTag.TIFF_TAG.TAG_STRIP_BYTE_COUNTS:
+ case ExifTag.TAG_STRIP_BYTE_COUNTS:
if (isThumbnailRequested()) {
if (tag.hasValue()) {
mStripSizeTag = tag;
diff --git a/src/com/android/gallery3d/exif/ExifTag.java b/src/com/android/gallery3d/exif/ExifTag.java
index 35e308d77..92b055642 100644
--- a/src/com/android/gallery3d/exif/ExifTag.java
+++ b/src/com/android/gallery3d/exif/ExifTag.java
@@ -27,302 +27,464 @@ import java.util.Arrays;
* @see ExifData
*/
public class ExifTag {
- public static interface TIFF_TAG {
- public static final short TAG_IMAGE_WIDTH = 0x100;
- public static final short TAG_IMAGE_HEIGHT = 0x101;
- public static final short TAG_BITS_PER_SAMPLE = 0x102;
- public static final short TAG_COMPRESSION = 0x103;
- public static final short TAG_PHOTOMETRIC_INTERPRETATION = 0x106;
- public static final short TAG_IMAGE_DESCRIPTION = 0x10E;
- public static final short TAG_MAKE = 0x10F;
- public static final short TAG_MODEL = 0x110;
- public static final short TAG_STRIP_OFFSETS = 0x111;
- public static final short TAG_ORIENTATION = 0x112;
- public static final short TAG_SAMPLES_PER_PIXEL = 0x115;
- public static final short TAG_ROWS_PER_STRIP = 0x116;
- public static final short TAG_STRIP_BYTE_COUNTS = 0x117;
- public static final short TAG_X_RESOLUTION = 0x11A;
- public static final short TAG_Y_RESOLUTION = 0x11B;
- public static final short TAG_PLANAR_CONFIGURATION = 0x11C;
- public static final short TAG_RESOLUTION_UNIT = 0x128;
- public static final short TAG_TRANSFER_FUNCTION = 0x12D;
- public static final short TAG_SOFTWARE = 0x131;
- public static final short TAG_DATE_TIME = 0x132;
- public static final short TAG_ARTIST = 0x13B;
- public static final short TAG_WHITE_POINT = 0x13E;
- public static final short TAG_PRIMARY_CHROMATICITIES = 0x13F;
- public static final short TAG_JPEG_INTERCHANGE_FORMAT = 0x201;
- public static final short TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = 0x202;
- public static final short TAG_Y_CB_CR_COEFFICIENTS = 0x211;
- public static final short TAG_Y_CB_CR_SUB_SAMPLING = 0x212;
- public static final short TAG_Y_CB_CR_POSITIONING = 0x213;
- public static final short TAG_REFERENCE_BLACK_WHITE = 0x214;
- public static final short TAG_COPYRIGHT = (short) 0x8298;
- public static final short TAG_EXIF_IFD = (short) 0x8769;
- public static final short TAG_GPS_IFD = (short) 0x8825;
-
- public static final short ORIENTATION_TOP_LEFT = 1;
- public static final short ORIENTATION_TOP_RIGHT = 2;
- public static final short ORIENTATION_BOTTOM_LEFT = 3;
- public static final short ORIENTATION_BOTTOM_RIGHT = 4;
- public static final short ORIENTATION_LEFT_TOP = 5;
- public static final short ORIENTATION_RIGHT_TOP = 6;
- public static final short ORIENTATION_LEFT_BOTTOM = 7;
- public static final short ORIENTATION_RIGHT_BOTTOM = 8;
-
- public static final short Y_CB_CR_POSITIONING_CENTERED = 1;
- public static final short Y_CB_CR_POSITIONING_CO_SITED = 2;
-
- public static final short COMPRESSION_UNCOMPRESSION = 1;
- public static final short COMPRESSION_JPEG = 6;
-
- public static final short RESOLUTION_UNIT_INCHES = 2;
- public static final short RESOLUTION_UNIT_CENTIMETERS = 3;
-
- public static final short PHOTOMETRIC_INTERPRETATION_RGB = 2;
- public static final short PHOTOMETRIC_INTERPRETATION_YCBCR = 6;
-
- public static final short PLANAR_CONFIGURATION_CHUNKY = 1;
- public static final short PLANAR_CONFIGURATION_PLANAR = 2;
- }
-
- public static interface EXIF_TAG {
- public static final short TAG_EXPOSURE_TIME = (short) 0x829A;
- public static final short TAG_F_NUMBER = (short) 0x829D;
- public static final short TAG_EXPOSURE_PROGRAM = (short) 0x8822;
- public static final short TAG_SPECTRAL_SENSITIVITY = (short) 0x8824;
- public static final short TAG_ISO_SPEED_RATINGS = (short) 0x8827;
- public static final short TAG_OECF = (short) 0x8828;
- public static final short TAG_EXIF_VERSION = (short) 0x9000;
- public static final short TAG_DATE_TIME_ORIGINAL = (short) 0x9003;
- public static final short TAG_DATE_TIME_DIGITIZED = (short) 0x9004;
- public static final short TAG_COMPONENTS_CONFIGURATION = (short) 0x9101;
- public static final short TAG_COMPRESSED_BITS_PER_PIXEL = (short) 0x9102;
- public static final short TAG_SHUTTER_SPEED = (short) 0x9201;
- public static final short TAG_APERTURE_VALUE = (short) 0x9202;
- public static final short TAG_BRIGHTNESS_VALUE = (short) 0x9203;
- public static final short TAG_EXPOSURE_BIAS_VALUE = (short) 0x9204;
- public static final short TAG_MAX_APERTURE_VALUE = (short) 0x9205;
- public static final short TAG_SUBJECT_DISTANCE = (short) 0x9206;
- public static final short TAG_METERING_MODE = (short) 0x9207;
- public static final short TAG_LIGHT_SOURCE = (short) 0x9208;
- public static final short TAG_FLASH = (short) 0x9209;
- public static final short TAG_FOCAL_LENGTH = (short) 0x920A;
- public static final short TAG_SUBJECT_AREA = (short) 0x9214;
- public static final short TAG_MARER_NOTE = (short) 0x927C;
- public static final short TAG_USER_COMMENT = (short) 0x9286;
- public static final short TAG_SUB_SEC_TIME = (short) 0x9290;
- public static final short TAG_SUB_SEC_TIME_ORIGINAL = (short) 0x9291;
- public static final short TAG_SUB_SEC_TIME_DIGITIZED = (short) 0x9292;
- public static final short TAG_FLASHPIX_VERSION = (short) 0xA000;
- public static final short TAG_COLOR_SPACE = (short) 0xA001;
- public static final short TAG_PIXEL_X_DIMENSION = (short) 0xA002;
- public static final short TAG_PIXEL_Y_DIMENSION = (short) 0xA003;
- public static final short TAG_RELATED_SOUND_FILE = (short) 0xA004;
- public static final short TAG_INTEROPERABILITY_IFD = (short) 0xA005;
- public static final short TAG_FLASH_ENERGY = (short) 0xA20B;
- public static final short TAG_SPATIAL_FREQUENCY_REPSONSE = (short) 0xA20C;
- public static final short TAG_FOCAL_PLANE_X_RESOLUTION = (short) 0xA20E;
- public static final short TAG_FOCAL_PLANE_Y_RESOLUTION = (short) 0xA20F;
- public static final short TAG_FOCAL_PLANE_RESOLUTION_UNIT = (short) 0xA210;
- public static final short TAG_SUBJECT_LOCATION = (short) 0xA214;
- public static final short TAG_EXPOSURE_INDEX = (short) 0xA215;
- public static final short TAG_SENSING_METHOD = (short) 0xA217;
- public static final short TAG_FILE_SOURCE = (short) 0xA300;
- public static final short TAG_SCENE_TYPE = (short) 0xA301;
- public static final short TAG_CFA_PATTERN = (short) 0xA302;
- public static final short TAG_CUSTOM_RENDERED = (short) 0xA401;
- public static final short TAG_EXPOSURE_MODE = (short) 0xA402;
- public static final short TAG_WHITH_BALANCE = (short) 0xA403;
- public static final short TAG_DIGITAL_ZOOM_RATIO = (short) 0xA404;
- public static final short TAG_FOCAL_LENGTH_IN_35_MM_FILE = (short) 0xA405;
- public static final short TAG_SCENE_CAPTURE_TYPE = (short) 0xA406;
- public static final short TAG_GAIN_CONTROL = (short) 0xA407;
- public static final short TAG_CONTRAST = (short) 0xA408;
- public static final short TAG_SATURATION = (short) 0xA409;
- public static final short TAG_SHARPNESS = (short) 0xA40A;
- public static final short TAG_DEVICE_SETTING_DESCRIPTION = (short) 0xA40B;
- public static final short TAG_SUBJECT_DISTANCE_RANGE = (short) 0xA40C;
- public static final short TAG_IMAGE_UNIQUE_ID = (short) 0xA420;
-
- public static final short EXPOSURE_PROGRAM_NOT_DEFINED = 0;
- public static final short EXPOSURE_PROGRAM_MANUAL = 1;
- public static final short EXPOSURE_PROGRAM_NORMAL_PROGRAM = 2;
- public static final short EXPOSURE_PROGRAM_APERTURE_PRIORITY = 3;
- public static final short EXPOSURE_PROGRAM_SHUTTER_PRIORITY = 4;
- public static final short EXPOSURE_PROGRAM_CREATIVE_PROGRAM = 5;
- public static final short EXPOSURE_PROGRAM_ACTION_PROGRAM = 6;
- public static final short EXPOSURE_PROGRAM_PROTRAIT_MODE = 7;
- public static final short EXPOSURE_PROGRAM_LANDSCAPE_MODE = 8;
-
- public static final short METERING_MODE_UNKNOWN = 0;
- public static final short METERING_MODE_AVERAGE = 1;
- public static final short METERING_MODE_CENTER_WEIGHTED_AVERAGE = 2;
- public static final short METERING_MODE_SPOT = 3;
- public static final short METERING_MODE_MULTISPOT = 4;
- public static final short METERING_MODE_PATTERN = 5;
- public static final short METERING_MODE_PARTAIL = 6;
- public static final short METERING_MODE_OTHER = 255;
-
- // Flash flag
+ // Tiff Tags
+ public static final short TAG_IMAGE_WIDTH = 0x100;
+ /*
+ * The height of the image.
+ */
+ public static final short TAG_IMAGE_LENGTH = 0x101;
+ public static final short TAG_BITS_PER_SAMPLE = 0x102;
+ public static final short TAG_COMPRESSION = 0x103;
+ public static final short TAG_PHOTOMETRIC_INTERPRETATION = 0x106;
+ public static final short TAG_IMAGE_DESCRIPTION = 0x10E;
+ public static final short TAG_MAKE = 0x10F;
+ public static final short TAG_MODEL = 0x110;
+ public static final short TAG_STRIP_OFFSETS = 0x111;
+ public static final short TAG_ORIENTATION = 0x112;
+ public static final short TAG_SAMPLES_PER_PIXEL = 0x115;
+ public static final short TAG_ROWS_PER_STRIP = 0x116;
+ public static final short TAG_STRIP_BYTE_COUNTS = 0x117;
+ public static final short TAG_X_RESOLUTION = 0x11A;
+ public static final short TAG_Y_RESOLUTION = 0x11B;
+ public static final short TAG_PLANAR_CONFIGURATION = 0x11C;
+ public static final short TAG_RESOLUTION_UNIT = 0x128;
+ public static final short TAG_TRANSFER_FUNCTION = 0x12D;
+ public static final short TAG_SOFTWARE = 0x131;
+ public static final short TAG_DATE_TIME = 0x132;
+ public static final short TAG_ARTIST = 0x13B;
+ public static final short TAG_WHITE_POINT = 0x13E;
+ public static final short TAG_PRIMARY_CHROMATICITIES = 0x13F;
+ public static final short TAG_JPEG_INTERCHANGE_FORMAT = 0x201;
+ public static final short TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = 0x202;
+ public static final short TAG_Y_CB_CR_COEFFICIENTS = 0x211;
+ public static final short TAG_Y_CB_CR_SUB_SAMPLING = 0x212;
+ public static final short TAG_Y_CB_CR_POSITIONING = 0x213;
+ public static final short TAG_REFERENCE_BLACK_WHITE = 0x214;
+ public static final short TAG_COPYRIGHT = (short) 0x8298;
+ public static final short TAG_EXIF_IFD = (short) 0x8769;
+ public static final short TAG_GPS_IFD = (short) 0x8825;
+
+ // Exif Tags
+ public static final short TAG_EXPOSURE_TIME = (short) 0x829A;
+ public static final short TAG_F_NUMBER = (short) 0x829D;
+ public static final short TAG_EXPOSURE_PROGRAM = (short) 0x8822;
+ public static final short TAG_SPECTRAL_SENSITIVITY = (short) 0x8824;
+ public static final short TAG_ISO_SPEED_RATINGS = (short) 0x8827;
+ public static final short TAG_OECF = (short) 0x8828;
+ public static final short TAG_EXIF_VERSION = (short) 0x9000;
+ public static final short TAG_DATE_TIME_ORIGINAL = (short) 0x9003;
+ public static final short TAG_DATE_TIME_DIGITIZED = (short) 0x9004;
+ public static final short TAG_COMPONENTS_CONFIGURATION = (short) 0x9101;
+ public static final short TAG_COMPRESSED_BITS_PER_PIXEL = (short) 0x9102;
+ public static final short TAG_SHUTTER_SPEED = (short) 0x9201;
+ public static final short TAG_APERTURE_VALUE = (short) 0x9202;
+ public static final short TAG_BRIGHTNESS_VALUE = (short) 0x9203;
+ public static final short TAG_EXPOSURE_BIAS_VALUE = (short) 0x9204;
+ public static final short TAG_MAX_APERTURE_VALUE = (short) 0x9205;
+ public static final short TAG_SUBJECT_DISTANCE = (short) 0x9206;
+ public static final short TAG_METERING_MODE = (short) 0x9207;
+ public static final short TAG_LIGHT_SOURCE = (short) 0x9208;
+ public static final short TAG_FLASH = (short) 0x9209;
+ public static final short TAG_FOCAL_LENGTH = (short) 0x920A;
+ public static final short TAG_SUBJECT_AREA = (short) 0x9214;
+ public static final short TAG_MARER_NOTE = (short) 0x927C;
+ public static final short TAG_USER_COMMENT = (short) 0x9286;
+ public static final short TAG_SUB_SEC_TIME = (short) 0x9290;
+ public static final short TAG_SUB_SEC_TIME_ORIGINAL = (short) 0x9291;
+ public static final short TAG_SUB_SEC_TIME_DIGITIZED = (short) 0x9292;
+ public static final short TAG_FLASHPIX_VERSION = (short) 0xA000;
+ public static final short TAG_COLOR_SPACE = (short) 0xA001;
+ public static final short TAG_PIXEL_X_DIMENSION = (short) 0xA002;
+ public static final short TAG_PIXEL_Y_DIMENSION = (short) 0xA003;
+ public static final short TAG_RELATED_SOUND_FILE = (short) 0xA004;
+ public static final short TAG_INTEROPERABILITY_IFD = (short) 0xA005;
+ public static final short TAG_FLASH_ENERGY = (short) 0xA20B;
+ public static final short TAG_SPATIAL_FREQUENCY_REPSONSE = (short) 0xA20C;
+ public static final short TAG_FOCAL_PLANE_X_RESOLUTION = (short) 0xA20E;
+ public static final short TAG_FOCAL_PLANE_Y_RESOLUTION = (short) 0xA20F;
+ public static final short TAG_FOCAL_PLANE_RESOLUTION_UNIT = (short) 0xA210;
+ public static final short TAG_SUBJECT_LOCATION = (short) 0xA214;
+ public static final short TAG_EXPOSURE_INDEX = (short) 0xA215;
+ public static final short TAG_SENSING_METHOD = (short) 0xA217;
+ public static final short TAG_FILE_SOURCE = (short) 0xA300;
+ public static final short TAG_SCENE_TYPE = (short) 0xA301;
+ public static final short TAG_CFA_PATTERN = (short) 0xA302;
+ public static final short TAG_CUSTOM_RENDERED = (short) 0xA401;
+ public static final short TAG_EXPOSURE_MODE = (short) 0xA402;
+ public static final short TAG_WHITE_BALANCE = (short) 0xA403;
+ public static final short TAG_DIGITAL_ZOOM_RATIO = (short) 0xA404;
+ public static final short TAG_FOCAL_LENGTH_IN_35_MM_FILE = (short) 0xA405;
+ public static final short TAG_SCENE_CAPTURE_TYPE = (short) 0xA406;
+ public static final short TAG_GAIN_CONTROL = (short) 0xA407;
+ public static final short TAG_CONTRAST = (short) 0xA408;
+ public static final short TAG_SATURATION = (short) 0xA409;
+ public static final short TAG_SHARPNESS = (short) 0xA40A;
+ public static final short TAG_DEVICE_SETTING_DESCRIPTION = (short) 0xA40B;
+ public static final short TAG_SUBJECT_DISTANCE_RANGE = (short) 0xA40C;
+ public static final short TAG_IMAGE_UNIQUE_ID = (short) 0xA420;
+
+ // GPS tags
+ public static final short TAG_GPS_VERSION_ID = 0;
+ public static final short TAG_GPS_LATITUDE_REF = 1;
+ public static final short TAG_GPS_LATITUDE = 2;
+ public static final short TAG_GPS_LONGITUDE_REF = 3;
+ public static final short TAG_GPS_LONGITUDE = 4;
+ public static final short TAG_GPS_ALTITUDE_REF = 5;
+ public static final short TAG_GPS_ALTITUDE = 6;
+ public static final short TAG_GPS_TIME_STAMP = 7;
+ public static final short TAG_GPS_SATTELLITES = 8;
+ public static final short TAG_GPS_STATUS = 9;
+ public static final short TAG_GPS_MEASURE_MODE = 10;
+ public static final short TAG_GPS_DOP = 11;
+ public static final short TAG_GPS_SPEED_REF = 12;
+ public static final short TAG_GPS_SPEED = 13;
+ public static final short TAG_GPS_TRACK_REF = 14;
+ public static final short TAG_GPS_TRACK = 15;
+ public static final short TAG_GPS_IMG_DIRECTION_REF = 16;
+ public static final short TAG_GPS_IMG_DIRECTION = 17;
+ public static final short TAG_GPS_MAP_DATUM = 18;
+ public static final short TAG_GPS_DEST_LATITUDE_REF = 19;
+ public static final short TAG_GPS_DEST_LATITUDE = 20;
+ public static final short TAG_GPS_DEST_LONGITUDE_REF = 21;
+ public static final short TAG_GPS_DEST_LONGITUDE = 22;
+ public static final short TAG_GPS_DEST_BEARING_REF = 23;
+ public static final short TAG_GPS_DEST_BEARING = 24;
+ public static final short TAG_GPS_DEST_DISTANCE_REF = 25;
+ public static final short TAG_GPS_DEST_DISTANCE = 26;
+ public static final short TAG_GPS_PROCESSING_METHOD = 27;
+ public static final short TAG_GPS_AREA_INFORMATION = 28;
+ public static final short TAG_GPS_DATA_STAMP = 29;
+ public static final short TAG_GPS_DIFFERENTIAL = 30;
+
+ //Interoperability tag
+ public static final short TAG_INTEROPERABILITY_INDEX = 1;
+
+ /**
+ * Constants for {@link #TAG_ORIENTATION}
+ */
+ public static interface Orientation {
+ public static final short TOP_LEFT = 1;
+ public static final short TOP_RIGHT = 2;
+ public static final short BOTTOM_LEFT = 3;
+ public static final short BOTTOM_RIGHT = 4;
+ public static final short LEFT_TOP = 5;
+ public static final short RIGHT_TOP = 6;
+ public static final short LEFT_BOTTOM = 7;
+ public static final short RIGHT_BOTTOM = 8;
+ }
+
+ /**
+ * Constants for {@link #TAG_Y_CB_CR_POSITIONING}
+ */
+ public static interface YCbCrPositioning {
+ public static final short CENTERED = 1;
+ public static final short CO_SITED = 2;
+ }
+
+ /**
+ * Contants for {@link #TAG_COMPRESSION}
+ */
+ public static interface Compression {
+ public static final short UNCOMPRESSION = 1;
+ public static final short JPEG = 6;
+ }
+
+ /**
+ * Constants for {@link #TAG_RESOLUTION_UNIT}
+ */
+ public static interface ResolutionUnit {
+ public static final short INCHES = 2;
+ public static final short CENTIMETERS = 3;
+ }
+
+ /**
+ * Constants for {@link #TAG_PHOTOMETRIC_INTERPRETATION}
+ */
+ public static interface PhotometricInterpretation {
+ public static final short RGB = 2;
+ public static final short YCBCR = 6;
+ }
+
+ /**
+ * Constants for {@link #TAG_PLANAR_CONFIGURATION}
+ */
+ public static interface PlanarConfiguration {
+ public static final short CHUNKY = 1;
+ public static final short PLANAR = 2;
+ }
+
+ /**
+ * Constants for {@link #TAG_EXPOSURE_PROGRAM}
+ */
+ public static interface ExposureProgram {
+ public static final short NOT_DEFINED = 0;
+ public static final short MANUAL = 1;
+ public static final short NORMAL_PROGRAM = 2;
+ public static final short APERTURE_PRIORITY = 3;
+ public static final short SHUTTER_PRIORITY = 4;
+ public static final short CREATIVE_PROGRAM = 5;
+ public static final short ACTION_PROGRAM = 6;
+ public static final short PROTRAIT_MODE = 7;
+ public static final short LANDSCAPE_MODE = 8;
+ }
+
+ /**
+ * Constants for {@link #TAG_METERING_MODE}
+ */
+ public static interface MeteringMode {
+ public static final short UNKNOWN = 0;
+ public static final short AVERAGE = 1;
+ public static final short CENTER_WEIGHTED_AVERAGE = 2;
+ public static final short SPOT = 3;
+ public static final short MULTISPOT = 4;
+ public static final short PATTERN = 5;
+ public static final short PARTAIL = 6;
+ public static final short OTHER = 255;
+ }
+
+ /**
+ * Constants for {@link #TAG_FLASH} As the definition in Jeita EXIF 2.2 standard, we can
+ * treat this constant as bitwise flag.
+ * <p>
+ * e.g.
+ * <p>
+ * short flash = FIRED | RETURN_STROBE_RETURN_LIGHT_DETECTED | MODE_AUTO_MODE
+ */
+ public static interface Flash {
// LSB
- public static final short FLASH_DID_NOT_FIRED = 0;
- public static final short FLASH_FIRED = 1;
+ public static final short DID_NOT_FIRED = 0;
+ public static final short FIRED = 1;
// 1~2 bits
- public static final short FLASH_RETURN_NO_STROBE_RETURN_DETECTION_FUNCTION = 0 << 1;
- public static final short FLASH_RETURN_STROBE_RETURN_LIGHT_NOT_DETECTED = 2 << 1;
- public static final short FLASH_RETURN_STROBE_RETURN_LIGHT_DETECTED = 3 << 1;
+ public static final short RETURN_NO_STROBE_RETURN_DETECTION_FUNCTION = 0 << 1;
+ public static final short RETURN_STROBE_RETURN_LIGHT_NOT_DETECTED = 2 << 1;
+ public static final short RETURN_STROBE_RETURN_LIGHT_DETECTED = 3 << 1;
// 3~4 bits
- public static final short FLASH_MODE_UNKNOWN = 0 << 3;
- public static final short FLASH_MODE_COMPULSORY_FLASH_FIRING = 1 << 3;
- public static final short FLASH_MODE_COMPULSORY_FLASH_SUPPRESSION = 2 << 3;
- public static final short FLASH_MODE_AUTO_MODE = 3 << 3;
+ public static final short MODE_UNKNOWN = 0 << 3;
+ public static final short MODE_COMPULSORY_FLASH_FIRING = 1 << 3;
+ public static final short MODE_COMPULSORY_FLASH_SUPPRESSION = 2 << 3;
+ public static final short MODE_AUTO_MODE = 3 << 3;
// 5 bit
- public static final short FLASH_FUNCTION_PRESENT = 0 << 5;
- public static final short FLASH_FUNCTION_NO_FUNCTION = 1 << 5;
+ public static final short FUNCTION_PRESENT = 0 << 5;
+ public static final short FUNCTION_NO_FUNCTION = 1 << 5;
// 6 bit
- public static final short FLASH_RED_EYE_REDUCTION_NO_OR_UNKNOWN = 0 << 6;
- public static final short FLASH_RED_EYE_REDUCTION_SUPPORT = 1 << 6;
-
- public static final short COLOR_SPACE_SRGB = 1;
- public static final short COLOR_SPACE_UNCALIBRATED = (short) 0xFFFF;
-
- public static final short EXPOSURE_MODE_AUTO_EXPOSURE = 0;
- public static final short EXPOSURE_MODE_MANUAL_EXPOSURE = 1;
- public static final short EXPOSURE_MODE_AUTO_BRACKET = 2;
-
- public static final short WHITE_BALACE_MODE_AUTO = 0;
- public static final short WHITE_BALACE_MODE_MANUAL = 1;
-
- public static final short SCENE_CAPTURE_TYPE_STANDARD = 0;
- public static final short SCENE_CAPTURE_TYPE_LANDSCAPE = 1;
- public static final short SCENE_CAPTURE_TYPE_PROTRAIT = 2;
- public static final short SCENE_CAPTURE_TYPE_NIGHT_SCENE = 3;
-
- public static final short COMPONENTS_CONFIGURATION_NOT_EXIST = 0;
- public static final short COMPONENTS_CONFIGURATION_Y = 1;
- public static final short COMPONENTS_CONFIGURATION_CB = 2;
- public static final short COMPONENTS_CONFIGURATION_CR = 3;
- public static final short COMPONENTS_CONFIGURATION_R = 4;
- public static final short COMPONENTS_CONFIGURATION_G = 5;
- public static final short COMPONENTS_CONFIGURATION_B = 6;
-
- public static final short LIGHT_SOURCE_UNKNOWN = 0;
- public static final short LIGHT_SOURCE_DAYLIGHT = 1;
- public static final short LIGHT_SOURCE_FLUORESCENT = 2;
- public static final short LIGHT_SOURCE_TUNGSTEN = 3;
- public static final short LIGHT_SOURCE_FLASH = 4;
- public static final short LIGHT_SOURCE_FINE_WEATHER = 9;
- public static final short LIGHT_SOURCE_CLOUDY_WEATHER = 10;
- public static final short LIGHT_SOURCE_SHADE = 11;
- public static final short LIGHT_SOURCE_DAYLIGHT_FLUORESCENT = 12;
- public static final short LIGHT_SOURCE_DAY_WHITE_FLUORESCENT = 13;
- public static final short LIGHT_SOURCE_COOL_WHITE_FLUORESCENT = 14;
- public static final short LIGHT_SOURCE_WHITE_FLUORESCENT = 15;
- public static final short LIGHT_SOURCE_STANDARD_LIGHT_A = 17;
- public static final short LIGHT_SOURCE_STANDARD_LIGHT_B = 18;
- public static final short LIGHT_SOURCE_STANDARD_LIGHT_C = 19;
- public static final short LIGHT_SOURCE_D55 = 20;
- public static final short LIGHT_SOURCE_D65 = 21;
- public static final short LIGHT_SOURCE_D75 = 22;
- public static final short LIGHT_SOURCE_D50 = 23;
- public static final short LIGHT_SOURCE_ISO_STUDIO_TUNGSTEN = 24;
- public static final short LIGHT_SOURCE_OTHER = 255;
-
- public static final short SENSING_METHOD_NOT_DEFINED = 1;
- public static final short SENSING_METHOD_ONE_CHIP_COLOR = 2;
- public static final short SENSING_METHOD_TWO_CHIP_COLOR = 3;
- public static final short SENSING_METHOD_THREE_CHIP_COLOR = 4;
- public static final short SENSING_METHOD_COLOR_SEQUENTIAL_AREA = 5;
- public static final short SENSING_METHOD_TRILINEAR = 7;
- public static final short SENSING_METHOD_COLOR_SEQUENTIAL_LINEAR = 8;
-
- public static final short FILE_SOURCE_DSC = 3;
-
- public static final short SCENE_TYPE_DIRECT_PHOTOGRAPHED = 1;
-
- public static final short GAIN_CONTROL_NONE = 0;
- public static final short GAIN_CONTROL_LOW_UP = 1;
- public static final short GAIN_CONTROL_HIGH_UP = 2;
- public static final short GAIN_CONTROL_LOW_DOWN = 3;
- public static final short GAIN_CONTROL_HIGH_DOWN = 4;
-
- public static final short CONTRAST_NORMAL = 0;
- public static final short CONTRAST_SOFT = 1;
- public static final short CONTRAST_HARD = 2;
-
- public static final short SATURATION_NORMAL = 0;
- public static final short SATURATION_LOW = 1;
- public static final short SATURATION_HIGH = 2;
-
- public static final short SHARPNESS_NORMAL = 0;
- public static final short SHARPNESS_SOFT = 1;
- public static final short SHARPNESS_HARD = 2;
-
- public static final short SUBJECT_DISTANCE_RANGE_UNKNOWN = 0;
- public static final short SUBJECT_DISTANCE_RANGE_MACRO = 1;
- public static final short SUBJECT_DISTANCE_RANGE_CLOSE_VIEW = 2;
- public static final short SUBJECT_DISTANCE_RANGE_DISTANT_VIEW = 3;
- }
-
- public static interface GPS_TAG {
- public static final short TAG_GPS_VERSION_ID = 0;
- public static final short TAG_GPS_LATITUDE_REF = 1;
- public static final short TAG_GPS_LATITUDE = 2;
- public static final short TAG_GPS_LONGITUDE_REF = 3;
- public static final short TAG_GPS_LONGITUDE = 4;
- public static final short TAG_GPS_ALTITUDE_REF = 5;
- public static final short TAG_GPS_ALTITUDE = 6;
- public static final short TAG_GPS_TIME_STAMP = 7;
- public static final short TAG_GPS_SATTELLITES = 8;
- public static final short TAG_GPS_STATUS = 9;
- public static final short TAG_GPS_MEASURE_MODE = 10;
- public static final short TAG_GPS_DOP = 11;
- public static final short TAG_GPS_SPEED_REF = 12;
- public static final short TAG_GPS_SPEED = 13;
- public static final short TAG_GPS_TRACK_REF = 14;
- public static final short TAG_GPS_TRACK = 15;
- public static final short TAG_GPS_IMG_DIRECTION_REF = 16;
- public static final short TAG_GPS_IMG_DIRECTION = 17;
- public static final short TAG_GPS_MAP_DATUM = 18;
- public static final short TAG_GPS_DEST_LATITUDE_REF = 19;
- public static final short TAG_GPS_DEST_LATITUDE = 20;
- public static final short TAG_GPS_DEST_LONGITUDE_REF = 21;
- public static final short TAG_GPS_DEST_LONGITUDE = 22;
- public static final short TAG_GPS_DEST_BEARING_REF = 23;
- public static final short TAG_GPS_DEST_BEARING = 24;
- public static final short TAG_GPS_DEST_DISTANCE_REF = 25;
- public static final short TAG_GPS_DEST_DISTANCE = 26;
- public static final short TAG_GPS_PROCESSING_METHOD = 27;
- public static final short TAG_GPS_AREA_INFORMATION = 28;
- public static final short TAG_GPS_DATA_STAMP = 29;
- public static final short TAG_GPS_DIFFERENTIAL = 30;
-
- public static final String GPS_REF_NORTH = "N";
- public static final String GPS_REF_SOUTH = "S";
-
- public static final String GPS_REF_EAST = "E";
- public static final String GPS_REF_WEST = "W";
-
- public static final short GPS_ALTITUDE_REF_SEA_LEVEL = 0;
- public static final short GPS_ALTITUDE_REF_SEA_LEVEL_NEGATIVE = 1;
-
- public static final String GPS_STATUS_IN_PROGRESS = "A";
- public static final String GPS_STATUS_INTEROPERABILITY = "V";
-
- public static final String GPS_MEASURE_MODE_2_DIMENSIONAL = "2";
- public static final String GPS_MEASURE_MODE_3_DIMENSIONAL = "3";
-
- public static final String GPS_REF_KILOMETERS = "K";
- public static final String GPS_REF_MILES = "M";
- public static final String GPS_REF_KNOTS = "N";
-
- public static final String GPS_REF_TRUE_DIRECTION = "T";
- public static final String GPS_REF_MAGNETIC_DIRECTION = "M";
- }
-
- public static interface INTEROPERABILITY_TAG {
- public static final short INTEROPERABILITY_INDEX = 1;
+ public static final short RED_EYE_REDUCTION_NO_OR_UNKNOWN = 0 << 6;
+ public static final short RED_EYE_REDUCTION_SUPPORT = 1 << 6;
+ }
+
+ /**
+ * Constants for {@link #TAG_COLOR_SPACE}
+ */
+ public static interface ColorSpace {
+ public static final short SRGB = 1;
+ public static final short UNCALIBRATED = (short) 0xFFFF;
+ }
+
+ /**
+ * Constants for {@link #TAG_EXPOSURE_MODE}
+ */
+ public static interface ExposureMode {
+ public static final short AUTO_EXPOSURE = 0;
+ public static final short MANUAL_EXPOSURE = 1;
+ public static final short AUTO_BRACKET = 2;
+ }
+
+ /**
+ * Constants for {@link #TAG_WHITE_BALANCE}
+ */
+ public static interface WhiteBalance {
+ public static final short AUTO = 0;
+ public static final short MANUAL = 1;
+ }
+
+ /**
+ * Constants for {@link #TAG_SCENE_CAPTURE_TYPE}
+ */
+ public static interface SceneCapture {
+ public static final short STANDARD = 0;
+ public static final short LANDSCAPE = 1;
+ public static final short PROTRAIT = 2;
+ public static final short NIGHT_SCENE = 3;
+ }
+
+ /**
+ * Constants for {@link #TAG_COMPONENTS_CONFIGURATION}
+ */
+ public static interface ComponentsConfiguration {
+ public static final short NOT_EXIST = 0;
+ public static final short Y = 1;
+ public static final short CB = 2;
+ public static final short CR = 3;
+ public static final short R = 4;
+ public static final short G = 5;
+ public static final short B = 6;
+ }
+
+ /**
+ * Constants for {@link #TAG_LIGHT_SOURCE}
+ */
+ public static interface LightSource {
+ public static final short UNKNOWN = 0;
+ public static final short DAYLIGHT = 1;
+ public static final short FLUORESCENT = 2;
+ public static final short TUNGSTEN = 3;
+ public static final short FLASH = 4;
+ public static final short FINE_WEATHER = 9;
+ public static final short CLOUDY_WEATHER = 10;
+ public static final short SHADE = 11;
+ public static final short DAYLIGHT_FLUORESCENT = 12;
+ public static final short DAY_WHITE_FLUORESCENT = 13;
+ public static final short COOL_WHITE_FLUORESCENT = 14;
+ public static final short WHITE_FLUORESCENT = 15;
+ public static final short STANDARD_LIGHT_A = 17;
+ public static final short STANDARD_LIGHT_B = 18;
+ public static final short STANDARD_LIGHT_C = 19;
+ public static final short D55 = 20;
+ public static final short D65 = 21;
+ public static final short D75 = 22;
+ public static final short D50 = 23;
+ public static final short ISO_STUDIO_TUNGSTEN = 24;
+ public static final short OTHER = 255;
+ }
+
+ /**
+ * Constants for {@link #TAG_SENSING_METHOD}
+ */
+ public static interface SensingMethod {
+ public static final short NOT_DEFINED = 1;
+ public static final short ONE_CHIP_COLOR = 2;
+ public static final short TWO_CHIP_COLOR = 3;
+ public static final short THREE_CHIP_COLOR = 4;
+ public static final short COLOR_SEQUENTIAL_AREA = 5;
+ public static final short TRILINEAR = 7;
+ public static final short COLOR_SEQUENTIAL_LINEAR = 8;
+ }
+
+ /**
+ * Constants for {@link #TAG_FILE_SOURCE}
+ */
+ public static interface FileSource {
+ public static final short DSC = 3;
+ }
+
+ /**
+ * Constants for {@link #TAG_SCENE_TYPE}
+ */
+ public static interface SceneType {
+ public static final short DIRECT_PHOTOGRAPHED = 1;
+ }
+
+ /**
+ * Constants for {@link #TAG_GAIN_CONTROL}
+ */
+ public static interface GainControl {
+ public static final short NONE = 0;
+ public static final short LOW_UP = 1;
+ public static final short HIGH_UP = 2;
+ public static final short LOW_DOWN = 3;
+ public static final short HIGH_DOWN = 4;
+ }
+
+ /**
+ * Constants for {@link #TAG_CONTRAST}
+ */
+ public static interface Contrast {
+ public static final short NORMAL = 0;
+ public static final short SOFT = 1;
+ public static final short HARD = 2;
+ }
+
+ /**
+ * Constants for {@link #TAG_SATURATION}
+ */
+ public static interface Saturation {
+ public static final short NORMAL = 0;
+ public static final short LOW = 1;
+ public static final short HIGH = 2;
+ }
+
+ /**
+ * Constants for {@link #TAG_SHARPNESS}
+ */
+ public static interface Sharpness {
+ public static final short NORMAL = 0;
+ public static final short SOFT = 1;
+ public static final short HARD = 2;
+ }
+
+ /**
+ * Constants for {@link #TAG_SUBJECT_DISTANCE}
+ */
+ public static interface SubjectDistance {
+ public static final short UNKNOWN = 0;
+ public static final short MACRO = 1;
+ public static final short CLOSE_VIEW = 2;
+ public static final short DISTANT_VIEW = 3;
+ }
+
+ /**
+ * Constants for {@link #TAG_GPS_LATITUDE_REF}, {@link #TAG_GPS_DEST_LATITUDE_REF}
+ */
+ public static interface GpsLatitudeRef {
+ public static final String NORTH = "N";
+ public static final String SOUTH = "S";
+ }
+
+ /**
+ * Constants for {@link #TAG_GPS_LONGITUDE_REF}, {@link #TAG_GPS_DEST_LONGITUDE_REF}
+ */
+ public static interface GpsLongitudeRef {
+ public static final String EAST = "E";
+ public static final String WEST = "W";
+ }
+
+ /**
+ * Constants for {@link #TAG_GPS_ALTITUDE_REF}
+ */
+ public static interface GpsAltitudeRef {
+ public static final short SEA_LEVEL = 0;
+ public static final short SEA_LEVEL_NEGATIVE = 1;
+ }
+
+ /**
+ * Constants for {@link #TAG_GPS_STATUS}
+ */
+ public static interface GpsStatus {
+ public static final String IN_PROGRESS = "A";
+ public static final String INTEROPERABILITY = "V";
+ }
+
+ /**
+ * Constants for {@link #TAG_GPS_MEASURE_MODE}
+ */
+ public static interface GpsMeasureMode {
+ public static final String MODE_2_DIMENSIONAL = "2";
+ public static final String MODE_3_DIMENSIONAL = "3";
+ }
+
+ /**
+ * Constants for {@link #TAG_GPS_SPEED_REF}, {@link #TAG_GPS_DEST_DISTANCE_REF}
+ */
+ public static interface GpsSpeedRef {
+ public static final String KILOMETERS = "K";
+ public static final String MILES = "M";
+ public static final String KNOTS = "N";
+ }
+
+ /**
+ * Constants for {@link #TAG_GPS_TRACK_REF}, {@link #TAG_GPS_IMG_DIRECTION_REF},
+ * {@link #TAG_GPS_DEST_BEARING_REF}
+ */
+ public static interface GpsTrackRef {
+ public static final String TRUE_DIRECTION = "T";
+ public static final String MAGNETIC_DIRECTION = "M";
+ }
+
+ /**
+ * Constants for {@link #TAG_GPS_DIFFERENTIAL}
+ */
+ public static interface GpsDifferential {
+ public static final short WITHOUT_DIFFERENTIAL_CORRECTION = 0;
+ public static final short DIFFERENTIAL_CORRECTION_APPLIED = 1;
}
public static final short TYPE_UNSIGNED_BYTE = 1;
@@ -674,16 +836,16 @@ public class ExifTag {
}
/**
- * Returns true if the ID is one of the following: {@link TIFF_TAG#TAG_EXIF_IFD},
- * {@link TIFF_TAG#TAG_GPS_IFD}, {@link TIFF_TAG#TAG_JPEG_INTERCHANGE_FORMAT},
- * {@link TIFF_TAG#TAG_STRIP_OFFSETS}, {@link EXIF_TAG#TAG_INTEROPERABILITY_IFD}
+ * Returns true if the ID is one of the following: {@link #TAG_EXIF_IFD},
+ * {@link #TAG_GPS_IFD}, {@link #TAG_JPEG_INTERCHANGE_FORMAT},
+ * {@link #TAG_STRIP_OFFSETS}, {@link #TAG_INTEROPERABILITY_IFD}
*/
public static boolean isOffsetTag(short tagId) {
- return tagId == ExifTag.TIFF_TAG.TAG_EXIF_IFD
- || tagId == ExifTag.TIFF_TAG.TAG_GPS_IFD
- || tagId == ExifTag.TIFF_TAG.TAG_JPEG_INTERCHANGE_FORMAT
- || tagId == ExifTag.TIFF_TAG.TAG_STRIP_OFFSETS
- || tagId == ExifTag.EXIF_TAG.TAG_INTEROPERABILITY_IFD;
+ return tagId == TAG_EXIF_IFD
+ || tagId == TAG_GPS_IFD
+ || tagId == TAG_JPEG_INTERCHANGE_FORMAT
+ || tagId == TAG_STRIP_OFFSETS
+ || tagId == TAG_INTEROPERABILITY_IFD;
}
@Override