Class TIFFReader
- java.lang.Object
-
- com.twelvemonkeys.imageio.metadata.MetadataReader
-
- com.twelvemonkeys.imageio.metadata.tiff.TIFFReader
-
public final class TIFFReader extends MetadataReader
TIFFReader- Version:
- $Id: TIFFReader.java,v 1.0 Nov 13, 2009 5:42:51 PM haraldk Exp$
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTIFFReader.HexDump
-
Field Summary
Fields Modifier and Type Field Description (package private) static booleanDEBUGprivate longinputLengthprivate booleanlongOffsetsprivate intoffsetSizeprivate java.util.Set<java.lang.Long>parsedIFDsprivate static java.util.Map<java.lang.Integer,java.util.Collection<java.lang.Integer>>VALID_SUB_IFDSprivate static java.util.Collection<java.lang.Integer>VALID_TOP_LEVEL_IFDS
-
Constructor Summary
Constructors Constructor Description TIFFReader()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private intassertIntCount(long count)private static RationalcreateSafeRational(long numerator, long denominator)private static java.util.Map<java.lang.Integer,java.util.Collection<java.lang.Integer>>createSubIFDMap()private long[]getPointerOffsets(Entry entry)private booleanisValidLengthAtOffset(javax.imageio.stream.ImageInputStream input, long offset, long valueLength)private booleanisValidOffset(javax.imageio.stream.ImageInputStream input, long pos)private booleanisValidType(short type)static voidmain(java.lang.String[] args)Directoryread(javax.imageio.stream.ImageInputStream input)private TIFFEntryreadEntry(javax.imageio.stream.ImageInputStream pInput)private longreadEntryCount(javax.imageio.stream.ImageInputStream pInput)private IFDreadIFD(javax.imageio.stream.ImageInputStream pInput, long pOffset, java.util.Collection<java.lang.Integer> subIFDIds)private TIFFDirectoryreadLinkedIFDs(javax.imageio.stream.ImageInputStream input)private longreadOffset(javax.imageio.stream.ImageInputStream input)private voidreadSubIFDs(javax.imageio.stream.ImageInputStream input, java.util.List<TIFFEntry> entries, java.util.Collection<java.lang.Integer> subIFDIds)private static java.lang.ObjectreadValue(javax.imageio.stream.ImageInputStream pInput, short pType, int pCount, boolean bigTIFF)private java.lang.ObjectreadValueAt(javax.imageio.stream.ImageInputStream input, long offset, long length, short type, int count)private intreadValueCount(javax.imageio.stream.ImageInputStream pInput)private java.lang.ObjectreadValueInLine(javax.imageio.stream.ImageInputStream pInput, short pType, int pCount)
-
-
-
Field Detail
-
DEBUG
static final boolean DEBUG
-
VALID_TOP_LEVEL_IFDS
private static final java.util.Collection<java.lang.Integer> VALID_TOP_LEVEL_IFDS
-
VALID_SUB_IFDS
private static final java.util.Map<java.lang.Integer,java.util.Collection<java.lang.Integer>> VALID_SUB_IFDS
-
parsedIFDs
private final java.util.Set<java.lang.Long> parsedIFDs
-
inputLength
private long inputLength
-
longOffsets
private boolean longOffsets
-
offsetSize
private int offsetSize
-
-
Method Detail
-
createSubIFDMap
private static java.util.Map<java.lang.Integer,java.util.Collection<java.lang.Integer>> createSubIFDMap()
-
read
public Directory read(javax.imageio.stream.ImageInputStream input) throws java.io.IOException
- Specified by:
readin classMetadataReader- Throws:
java.io.IOException
-
readLinkedIFDs
private TIFFDirectory readLinkedIFDs(javax.imageio.stream.ImageInputStream input) throws java.io.IOException
- Throws:
java.io.IOException
-
readOffset
private long readOffset(javax.imageio.stream.ImageInputStream input) throws java.io.IOException- Throws:
java.io.IOException
-
readIFD
private IFD readIFD(javax.imageio.stream.ImageInputStream pInput, long pOffset, java.util.Collection<java.lang.Integer> subIFDIds) throws java.io.IOException
- Throws:
java.io.IOException
-
readEntryCount
private long readEntryCount(javax.imageio.stream.ImageInputStream pInput) throws java.io.IOException- Throws:
java.io.IOException
-
readSubIFDs
private void readSubIFDs(javax.imageio.stream.ImageInputStream input, java.util.List<TIFFEntry> entries, java.util.Collection<java.lang.Integer> subIFDIds) throws java.io.IOException- Throws:
java.io.IOException
-
getPointerOffsets
private long[] getPointerOffsets(Entry entry) throws javax.imageio.IIOException
- Throws:
javax.imageio.IIOException
-
readEntry
private TIFFEntry readEntry(javax.imageio.stream.ImageInputStream pInput) throws java.io.IOException
- Throws:
java.io.IOException
-
isValidType
private boolean isValidType(short type)
-
readValueCount
private int readValueCount(javax.imageio.stream.ImageInputStream pInput) throws java.io.IOException- Throws:
java.io.IOException
-
assertIntCount
private int assertIntCount(long count) throws java.io.IOException- Throws:
java.io.IOException
-
isValidOffset
private boolean isValidOffset(javax.imageio.stream.ImageInputStream input, long pos) throws java.io.IOException- Throws:
java.io.IOException
-
isValidLengthAtOffset
private boolean isValidLengthAtOffset(javax.imageio.stream.ImageInputStream input, long offset, long valueLength) throws java.io.IOException- Throws:
java.io.IOException
-
readValueAt
private java.lang.Object readValueAt(javax.imageio.stream.ImageInputStream input, long offset, long length, short type, int count) throws java.io.IOException- Throws:
java.io.IOException
-
readValueInLine
private java.lang.Object readValueInLine(javax.imageio.stream.ImageInputStream pInput, short pType, int pCount) throws java.io.IOException- Throws:
java.io.IOException
-
readValue
private static java.lang.Object readValue(javax.imageio.stream.ImageInputStream pInput, short pType, int pCount, boolean bigTIFF) throws java.io.IOException- Throws:
java.io.IOException
-
createSafeRational
private static Rational createSafeRational(long numerator, long denominator)
-
main
public static void main(java.lang.String[] args) throws java.io.IOException- Throws:
java.io.IOException
-
-