Class FileFormatReader

  • All Implemented Interfaces:
    FileFormatBoxes

    public class FileFormatReader
    extends Object
    implements FileFormatBoxes
    This class reads the file format wrapper that may or may not exist around a valid JPEG 2000 codestream. Since no information from the file format is used in the actual decoding, this class simply goes through the file and finds the first valid codestream.
    See Also:
    FileFormatWriter
    • Constructor Detail

      • FileFormatReader

        public FileFormatReader​(RandomAccessIO in,
                                J2KMetadata metadata)
        The constructor of the FileFormatReader
        Parameters:
        in - The RandomAccessIO from which to read the file format
    • Method Detail

      • readFileFormat

        public void readFileFormat()
                            throws IOException,
                                   EOFException
        This method checks whether the given RandomAccessIO is a valid JP2 file and if so finds the first codestream in the file. Currently, the information in the codestream is not used
        Throws:
        IOException - If an I/O error ocurred.
        EOFException - If end of file is reached
      • readFileTypeBox

        public boolean readFileTypeBox​(int length,
                                       long longLength)
                                throws IOException,
                                       EOFException
        This method reads the File Type box
        Returns:
        false if the File Type box was not found or invalid else true
        Throws:
        IOException - If an I/O error ocurred.
        EOFException - If the end of file was reached
      • readJP2HeaderBox

        public boolean readJP2HeaderBox​(int length)
                                 throws IOException,
                                        EOFException
        This method reads the JP2Header box
        Parameters:
        length - The length of the JP2Header box
        Returns:
        false if the JP2Header box was not found or invalid else true
        Throws:
        IOException - If an I/O error ocurred.
        EOFException - If the end of file was reached
      • readImageHeaderBox

        public boolean readImageHeaderBox​(int length)
                                   throws IOException,
                                          EOFException
        This method reads the Image Header box
        Parameters:
        length - The length of the JP2Header box
        Returns:
        false if the JP2Header box was not found or invalid else true
        Throws:
        IOException - If an I/O error ocurred.
        EOFException - If the end of file was reached
      • readContiguousCodeStreamBox

        public boolean readContiguousCodeStreamBox​(int length,
                                                   long longLength)
                                            throws IOException,
                                                   EOFException
        This method skips the Contiguous codestream box and adds position of contiguous codestream to a vector
        Parameters:
        length - The length of the JP2Header box
        longLength - The length of the JP2Header box if greater than 1<<32
        Returns:
        false if the Contiguous codestream box was not found or invalid else true
        Throws:
        IOException - If an I/O error ocurred.
        EOFException - If the end of file was reached
      • readIntPropertyBox

        public void readIntPropertyBox​(int length)
                                throws IOException
        This method reads the contents of the Intellectual property box
        Throws:
        IOException
      • readXMLBox

        public void readXMLBox​(int length)
                        throws IOException
        This method reads the contents of the XML box
        Throws:
        IOException
      • readURLBox

        public void readURLBox​(int length)
                        throws IOException
        This method reads the contents of the XML box
        Throws:
        IOException
      • readUUIDBox

        public void readUUIDBox​(int length)
                         throws IOException
        This method reads the contents of the Intellectual property box
        Throws:
        IOException
      • readUUIDListBox

        public void readUUIDListBox​(int length)
                             throws IOException
        This method reads the contents of the UUID List box
        Throws:
        IOException
      • readPaletteBox

        public void readPaletteBox​(int length)
                            throws IOException
        This method reads the content of the palette box
        Throws:
        IOException
      • readComponentMappingBox

        public void readComponentMappingBox​(int length)
                                     throws IOException
        Read the component mapping channel.
        Throws:
        IOException
      • readChannelDefinitionBox

        public void readChannelDefinitionBox​(int length)
                                      throws IOException
        This method reads the Channel Definition box
        Throws:
        IOException - If an I/O error ocurred.
      • readBitsPerComponentBox

        public void readBitsPerComponentBox​(int length)
                                     throws IOException
        Read the bits per component.
        Throws:
        IOException
      • readColourSpecificationBox

        public void readColourSpecificationBox​(int length)
                                        throws IOException
        Read the color specifications.
        Throws:
        IOException
      • readResolutionBox

        public void readResolutionBox​(int type,
                                      int length)
                               throws IOException
        Read the resolution.
        Throws:
        IOException
      • getCodeStreamPos

        public long[] getCodeStreamPos()
        This method creates and returns an array of positions to contiguous codestreams in the file
        Returns:
        The positions of the contiguous codestreams in the file
      • getFirstCodeStreamPos

        public int getFirstCodeStreamPos()
        This method returns the position of the first contiguous codestreams in the file
        Returns:
        The position of the first contiguous codestream in the file
      • getFirstCodeStreamLength

        public int getFirstCodeStreamLength()
        This method returns the length of the first contiguous codestreams in the file
        Returns:
        The length of the first contiguous codestream in the file
      • getColorModel

        public ColorModel getColorModel()
        Returns the color model created from the palette box.