Class TiffReader


  • public class TiffReader
    extends java.lang.Object
    Processes TIFF-formatted data, calling into client code via that TiffHandler interface.
    • Constructor Detail

      • TiffReader

        public TiffReader()
    • Method Detail

      • processTiff

        public void processTiff​(RandomAccessReader reader,
                                TiffHandler handler,
                                int tiffHeaderOffset)
                         throws TiffProcessingException,
                                java.io.IOException
        Processes a TIFF data sequence.
        Parameters:
        reader - the RandomAccessReader from which the data should be read
        handler - the TiffHandler that will coordinate processing and accept read values
        tiffHeaderOffset - the offset within reader at which the TIFF header starts
        Throws:
        TiffProcessingException - if an error occurred during the processing of TIFF data that could not be ignored or recovered from
        java.io.IOException - an error occurred while accessing the required data
      • processIfd

        public static void processIfd​(TiffHandler handler,
                                      RandomAccessReader reader,
                                      java.util.Set<java.lang.Integer> processedIfdOffsets,
                                      int ifdOffset,
                                      int tiffHeaderOffset)
                               throws java.io.IOException
        Processes a TIFF IFD. IFD Header:
        • 2 bytes number of tags
        Tag structure:
        • 2 bytes tag type
        • 2 bytes format code (values 1 to 12, inclusive)
        • 4 bytes component count
        • 4 bytes inline value, or offset pointer if too large to fit in four bytes
        Parameters:
        handler - the TiffHandler that will coordinate processing and accept read values
        reader - the RandomAccessReader from which the data should be read
        processedIfdOffsets - the set of visited IFD offsets, to avoid revisiting the same IFD in an endless loop
        ifdOffset - the offset within reader at which the IFD data starts
        tiffHeaderOffset - the offset within reader at which the TIFF header starts
        Throws:
        java.io.IOException - an error occurred while accessing the required data