Class TiffReader

java.lang.Object
com.drew.imaging.tiff.TiffReader

public class TiffReader extends Object
Processes TIFF-formatted data, calling into client code via that TiffHandler interface.
Author:
Drew Noakes https://drewnoakes.com
  • Constructor Details

    • TiffReader

      public TiffReader()
  • Method Details

    • processTiff

      public void processTiff(RandomAccessReader reader, TiffHandler handler, int tiffHeaderOffset) throws TiffProcessingException, 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
      IOException - an error occurred while accessing the required data
    • processIfd

      public static void processIfd(TiffHandler handler, RandomAccessReader reader, Set<Integer> processedIfdOffsets, int ifdOffset, int tiffHeaderOffset) throws 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:
      IOException - an error occurred while accessing the required data