private static final int TAG_THUMBNAIL_OFFSET = 0x0201;\r
/** Thumbnail length */\r
private static final int TAG_THUMBNAIL_LENGTH = 0x0202;\r
+ /** Orientation of image */\r
+ private static final int TAG_ORIENTATION = 0x0112;\r
\r
\r
/**\r
_thumbnailLength = get16Bits(inTagValueOffset);\r
extractThumbnail(inMetadata);\r
}\r
+ else if (inTagType == TAG_ORIENTATION) {\r
+ if (inMetadata.getOrientationCode() < 1) {\r
+ inMetadata.setOrientationCode(get16Bits(inTagValueOffset));\r
+ }\r
+ }\r
}\r
\r
/**\r
if (inByteCount > 4)\r
{\r
// If it's bigger than 4 bytes, the dir entry contains an offset.\r
- // dirEntryOffset must be passed, as some makernote implementations (e.g. FujiFilm) incorrectly use an\r
+ // dirEntryOffset must be passed, as some makers (e.g. FujiFilm) incorrectly use an\r
// offset relative to the start of the makernote itself, not the TIFF segment.\r
final int offsetVal = get32Bits(inDirEntryOffset + 8);\r
if (offsetVal + inByteCount > _data.length)\r
private int get16Bits(int offset)\r
{\r
if (offset<0 || offset+2>_data.length)\r
- throw new ArrayIndexOutOfBoundsException("attempt to read data outside of exif segment (index " + offset + " where max index is " + (_data.length - 1) + ")");\r
+ throw new ArrayIndexOutOfBoundsException("attempt to read data outside of exif segment (index "\r
+ + offset + " where max index is " + (_data.length - 1) + ")");\r
\r
if (_isMotorolaByteOrder) {\r
// Motorola - MSB first\r