Class TIFFBaseJPEGCompressor

    • Field Detail

      • STREAM_METADATA_NAME

        protected static final java.lang.String STREAM_METADATA_NAME
        See Also:
        Constant Field Values
      • IMAGE_METADATA_NAME

        protected static final java.lang.String IMAGE_METADATA_NAME
        See Also:
        Constant Field Values
      • param

        private javax.imageio.ImageWriteParam param
      • JPEGParam

        protected javax.imageio.plugins.jpeg.JPEGImageWriteParam JPEGParam
        ImageWriteParam for JPEG writer. May be initialized by initJPEGWriter(boolean, boolean).
      • writeAbbreviatedStream

        protected boolean writeAbbreviatedStream
        Whether to write abbreviated JPEG streams (default == false). A subclass which sets this to true should also initialized JPEGStreamMetadata.
      • JPEGStreamMetadata

        protected javax.imageio.metadata.IIOMetadata JPEGStreamMetadata
        Stream metadata equivalent to a tables-only stream such as in the JPEGTables. Default value is null. This should be set by any subclass which sets writeAbbreviatedStream to true.
      • JPEGImageMetadata

        private javax.imageio.metadata.IIOMetadata JPEGImageMetadata
      • usingCodecLib

        private boolean usingCodecLib
    • Constructor Detail

      • TIFFBaseJPEGCompressor

        public TIFFBaseJPEGCompressor​(java.lang.String compressionType,
                                      int compressionTagValue,
                                      boolean isCompressionLossless,
                                      javax.imageio.ImageWriteParam param)
    • Method Detail

      • pruneNodes

        private static void pruneNodes​(org.w3c.dom.Node tree,
                                       boolean pruneTables)
        Removes nonessential nodes from a JPEG native image metadata tree. All nodes derived from JPEG marker segments other than DHT, DQT, SOF, SOS segments are removed unless pruneTables is true in which case the nodes derived from the DHT and DQT marker segments are also removed.
        Parameters:
        tree - A javax_imageio_jpeg_image_1.0 tree.
        pruneTables - Whether to prune Huffman and quantization tables.
        Throws:
        java.lang.IllegalArgumentException - if tree is null or is not the root of a JPEG native image metadata tree.
      • getAllNodes

        private static java.util.List getAllNodes​(javax.imageio.metadata.IIOMetadataNode root,
                                                  java.util.List nodes)
      • initJPEGWriter

        protected void initJPEGWriter​(boolean supportsStreamMetadata,
                                      boolean supportsImageMetadata)
        Initializes the JPEGWriter and JPEGParam instance variables. This method must be called before encode() is invoked.
        Parameters:
        supportsStreamMetadata - Whether the JPEG writer must support JPEG native stream metadata, i.e., be capable of writing abbreviated streams.
        supportsImageMetadata - Whether the JPEG writer must support JPEG native image metadata.
      • getImageMetadata

        private javax.imageio.metadata.IIOMetadata getImageMetadata​(boolean pruneTables)
                                                             throws javax.imageio.IIOException
        Retrieves image metadata with non-core nodes removed.
        Throws:
        javax.imageio.IIOException
      • encode

        public final int encode​(byte[] b,
                                int off,
                                int width,
                                int height,
                                int[] bitsPerSample,
                                int scanlineStride)
                         throws java.io.IOException
        Description copied from class: TIFFCompressor
        Encodes the supplied image data, writing to the currently set ImageOutputStream.
        Specified by:
        encode in class TIFFCompressor
        Parameters:
        b - an array of bytes containing the packed but uncompressed image data.
        off - the starting offset of the data to be written in the array b.
        width - the width of the rectangle of pixels to be written.
        height - the height of the rectangle of pixels to be written.
        bitsPerSample - an array of ints indicting the number of bits used to represent each image sample within a pixel.
        scanlineStride - the number of bytes separating each row of the input data.
        Returns:
        the number of bytes written.
        Throws:
        java.io.IOException - if the supplied data cannot be encoded by this TIFFCompressor, or if any I/O error occurs during writing.
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable