public class TiffParser
extends java.lang.Object
implements java.io.Closeable
Modifier and Type | Field and Description |
---|---|
private boolean |
bigTiff
Whether or not the TIFF file contains BigTIFF data.
|
private byte[] |
cachedTileBuffer
Cached tile buffer to avoid re-allocations when reading tiles.
|
private boolean |
canClose |
private CodecOptions |
codecOptions
Codec options to be used when decoding compressed pixel data.
|
private boolean |
doCaching |
private boolean |
equalStrips |
private boolean |
fakeBigTiff
Whether or not 64-bit offsets are used for non-BigTIFF files.
|
private IFD |
firstIFD
Cached first IFD in the current file.
|
private IFDList |
ifdList
Cached list of IFDs in the current file.
|
protected loci.common.RandomAccessInputStream |
in
Input source from which to parse TIFF data.
|
private static org.slf4j.Logger |
LOGGER |
private boolean |
ycbcrCorrection |
Constructor and Description |
---|
TiffParser(loci.common.RandomAccessInputStream in)
Constructs a new TIFF parser from the given input source.
|
TiffParser(java.lang.String filename)
Constructs a new TIFF parser from the given file name.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Boolean |
checkHeader()
Checks the TIFF header.
|
void |
close()
Close the underlying stream, if this TiffParser was constructed
with a file path.
|
void |
fillInIFD(IFD ifd)
Fill in IFD entries that are stored at an arbitrary offset.
|
CodecOptions |
getCodecOptions()
Retrieves the current set of codec options being used to decompress pixel
data.
|
int[] |
getColorMap(IFD ifd)
Retrieve the color map associated with the given IFD.
|
java.lang.String |
getComment()
Convenience method for obtaining a stream's first ImageDescription.
|
IFDList |
getExifIFDs()
Returns EXIF IFDs.
|
IFD |
getFirstIFD()
Gets the first IFD within the TIFF file, or null
if the input source is not a valid TIFF file.
|
TiffIFDEntry |
getFirstIFDEntry(int tag)
Retrieve a given entry from the first IFD in the stream.
|
long |
getFirstOffset()
Gets offset to the first IFD, or -1 if stream is not TIFF.
|
IFD |
getIFD(long offset)
Gets the IFD stored at the given offset.
|
long[] |
getIFDOffsets()
Gets the offsets to every IFD in the file.
|
IFDList |
getIFDs()
Deprecated.
Use
getMainIFDs() and getSubIFDs(IFD) instead. |
java.lang.Object |
getIFDValue(TiffIFDEntry entry)
Retrieve the value corresponding to the given TiffIFDEntry.
|
IFDList |
getMainIFDs()
Returns the main list of IFDs in the file.
|
(package private) long |
getNextOffset(long previous)
Read a file offset.
|
IFDList |
getNonThumbnailIFDs()
Returns non-thumbnail IFDs.
|
byte[] |
getSamples(IFD ifd,
byte[] buf) |
byte[] |
getSamples(IFD ifd,
byte[] buf,
int x,
int y,
long width,
long height) |
byte[] |
getSamples(IFD ifd,
byte[] buf,
int x,
int y,
long width,
long height,
int overlapX,
int overlapY) |
loci.common.RandomAccessInputStream |
getStream()
Gets the stream from which TIFF data is being parsed.
|
IFDList |
getSubIFDs(IFD ifd)
Returns the SUBIFDS belonging to a given IFD.
|
IFDList |
getThumbnailIFDs()
Returns thumbnail IFDs.
|
byte[] |
getTile(IFD ifd,
byte[] buf,
int row,
int col) |
boolean |
isBigTiff()
Returns whether or not the current TIFF file contains BigTIFF data.
|
boolean |
isValidHeader()
Tests this stream to see if it represents a TIFF file.
|
(package private) TiffIFDEntry |
readTiffIFDEntry() |
void |
setAssumeEqualStrips(boolean equalStrips)
Sets whether or not to assume that strips are of equal size.
|
void |
setCodecOptions(CodecOptions codecOptions)
Sets the codec options to be used when decompressing pixel data.
|
void |
setDoCaching(boolean doCaching)
Sets whether or not IFD entries should be cached.
|
void |
setUse64BitOffsets(boolean use64Bit)
Sets whether or not 64-bit offsets are used for non-BigTIFF files.
|
void |
setYCbCrCorrection(boolean correctionAllowed)
Sets whether or not YCbCr color correction is allowed.
|
static void |
unpackBytes(byte[] samples,
int startIndex,
byte[] bytes,
IFD ifd)
Extracts pixel information from the given byte array according to the
bits per sample, photometric interpretation and color map IFD directory
entry values, and the specified byte ordering.
|
private static final org.slf4j.Logger LOGGER
protected transient loci.common.RandomAccessInputStream in
private byte[] cachedTileBuffer
private boolean bigTiff
private boolean fakeBigTiff
private boolean ycbcrCorrection
private boolean equalStrips
private boolean doCaching
private IFDList ifdList
private IFD firstIFD
private CodecOptions codecOptions
private boolean canClose
public TiffParser(java.lang.String filename) throws java.io.IOException
java.io.IOException
public TiffParser(loci.common.RandomAccessInputStream in)
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException
public void setAssumeEqualStrips(boolean equalStrips)
equalStrips
- Whether or not the strips are of equal size.public void setCodecOptions(CodecOptions codecOptions)
codecOptions
- Codec options to use.public CodecOptions getCodecOptions()
public void setDoCaching(boolean doCaching)
public void setUse64BitOffsets(boolean use64Bit)
public void setYCbCrCorrection(boolean correctionAllowed)
public loci.common.RandomAccessInputStream getStream()
public boolean isValidHeader()
public java.lang.Boolean checkHeader() throws java.io.IOException
java.io.IOException
public boolean isBigTiff()
public IFDList getMainIFDs() throws java.io.IOException
java.io.IOException
public IFDList getSubIFDs(IFD ifd) throws java.io.IOException
java.io.IOException
@Deprecated public IFDList getIFDs() throws java.io.IOException
getMainIFDs()
and getSubIFDs(IFD)
instead.java.io.IOException
public IFDList getThumbnailIFDs() throws java.io.IOException
java.io.IOException
public IFDList getNonThumbnailIFDs() throws java.io.IOException
java.io.IOException
public IFDList getExifIFDs() throws FormatException, java.io.IOException
FormatException
java.io.IOException
public long[] getIFDOffsets() throws java.io.IOException
java.io.IOException
public IFD getFirstIFD() throws java.io.IOException
java.io.IOException
public TiffIFDEntry getFirstIFDEntry(int tag) throws java.io.IOException
tag
- the tag of the entry to be retrieved.java.io.IOException
- when there is an error accessing the stream.java.lang.IllegalArgumentException
- when the tag number is unknown.public long getFirstOffset() throws java.io.IOException
java.io.IOException
public IFD getIFD(long offset) throws java.io.IOException
java.io.IOException
public void fillInIFD(IFD ifd) throws java.io.IOException
java.io.IOException
public java.lang.Object getIFDValue(TiffIFDEntry entry) throws java.io.IOException
java.io.IOException
public java.lang.String getComment() throws java.io.IOException
java.io.IOException
public int[] getColorMap(IFD ifd) throws java.io.IOException
java.io.IOException
public byte[] getTile(IFD ifd, byte[] buf, int row, int col) throws FormatException, java.io.IOException
FormatException
java.io.IOException
public byte[] getSamples(IFD ifd, byte[] buf) throws FormatException, java.io.IOException
FormatException
java.io.IOException
public byte[] getSamples(IFD ifd, byte[] buf, int x, int y, long width, long height) throws FormatException, java.io.IOException
FormatException
java.io.IOException
public byte[] getSamples(IFD ifd, byte[] buf, int x, int y, long width, long height, int overlapX, int overlapY) throws FormatException, java.io.IOException
FormatException
java.io.IOException
public static void unpackBytes(byte[] samples, int startIndex, byte[] bytes, IFD ifd) throws FormatException
FormatException
long getNextOffset(long previous) throws java.io.IOException
java.io.IOException
TiffIFDEntry readTiffIFDEntry() throws java.io.IOException
java.io.IOException
Copyright © 2023 Open Microscopy Environment