Class JpegSegmentReader


  • public class JpegSegmentReader
    extends java.lang.Object
    Performs read functions of JPEG files, returning specific file segments.

    JPEG files are composed of a sequence of consecutive JPEG 'segments'. Each is identified by one of a set of byte values, modelled in the JpegSegmentType enumeration. Use readSegments to read out the some or all segments into a JpegSegmentData object, from which the raw JPEG segment byte arrays may be accessed.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static byte MARKER_EOI
      Private, because one wouldn't search for it.
      private static byte SEGMENT_IDENTIFIER
      The 0xFF byte that signals the start of a segment.
      private static byte SEGMENT_SOS
      Private, because this segment crashes my algorithm, and searching for it doesn't work (yet).
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private JpegSegmentReader()  
    • Field Detail

      • SEGMENT_IDENTIFIER

        private static final byte SEGMENT_IDENTIFIER
        The 0xFF byte that signals the start of a segment.
        See Also:
        Constant Field Values
      • SEGMENT_SOS

        private static final byte SEGMENT_SOS
        Private, because this segment crashes my algorithm, and searching for it doesn't work (yet).
        See Also:
        Constant Field Values
      • MARKER_EOI

        private static final byte MARKER_EOI
        Private, because one wouldn't search for it.
        See Also:
        Constant Field Values
    • Constructor Detail

      • JpegSegmentReader

        private JpegSegmentReader()
                           throws java.lang.Exception
        Throws:
        java.lang.Exception
    • Method Detail

      • readSegments

        public static JpegSegmentData readSegments​(java.io.File file,
                                                   java.lang.Iterable<JpegSegmentType> segmentTypes)
                                            throws JpegProcessingException,
                                                   java.io.IOException
        Processes the provided JPEG data, and extracts the specified JPEG segments into a JpegSegmentData object.

        Will not return SOS (start of scan) or EOI (end of image) segments.

        Parameters:
        file - a File from which the JPEG data will be read.
        segmentTypes - the set of JPEG segments types that are to be returned. If this argument is null then all found segment types are returned.
        Throws:
        JpegProcessingException
        java.io.IOException
      • readSegments

        public static JpegSegmentData readSegments​(SequentialReader reader,
                                                   java.lang.Iterable<JpegSegmentType> segmentTypes)
                                            throws JpegProcessingException,
                                                   java.io.IOException
        Processes the provided JPEG data, and extracts the specified JPEG segments into a JpegSegmentData object.

        Will not return SOS (start of scan) or EOI (end of image) segments.

        Parameters:
        reader - a SequentialReader from which the JPEG data will be read. It must be positioned at the beginning of the JPEG data stream.
        segmentTypes - the set of JPEG segments types that are to be returned. If this argument is null then all found segment types are returned.
        Throws:
        JpegProcessingException
        java.io.IOException