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 class
TIFFReader.HexDump
-
Field Summary
Fields Modifier and Type Field Description (package private) static boolean
DEBUG
private long
inputLength
private boolean
longOffsets
private int
offsetSize
private java.util.Set<java.lang.Long>
parsedIFDs
private static java.util.Map<java.lang.Integer,java.util.Collection<java.lang.Integer>>
VALID_SUB_IFDS
private 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 int
assertIntCount(long count)
private static Rational
createSafeRational(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 boolean
isValidLengthAtOffset(javax.imageio.stream.ImageInputStream input, long offset, long valueLength)
private boolean
isValidOffset(javax.imageio.stream.ImageInputStream input, long pos)
private boolean
isValidType(short type)
static void
main(java.lang.String[] args)
Directory
read(javax.imageio.stream.ImageInputStream input)
private TIFFEntry
readEntry(javax.imageio.stream.ImageInputStream pInput)
private long
readEntryCount(javax.imageio.stream.ImageInputStream pInput)
private IFD
readIFD(javax.imageio.stream.ImageInputStream pInput, long pOffset, java.util.Collection<java.lang.Integer> subIFDIds)
private TIFFDirectory
readLinkedIFDs(javax.imageio.stream.ImageInputStream input)
private long
readOffset(javax.imageio.stream.ImageInputStream input)
private void
readSubIFDs(javax.imageio.stream.ImageInputStream input, java.util.List<TIFFEntry> entries, java.util.Collection<java.lang.Integer> subIFDIds)
private static java.lang.Object
readValue(javax.imageio.stream.ImageInputStream pInput, short pType, int pCount, boolean bigTIFF)
private java.lang.Object
readValueAt(javax.imageio.stream.ImageInputStream input, long offset, long length, short type, int count)
private int
readValueCount(javax.imageio.stream.ImageInputStream pInput)
private java.lang.Object
readValueInLine(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:
read
in 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
-
-