Class TIFFCompressor

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int compressionTagValue
      The value to be assigned to the TIFF Compression tag in the TIFF image metadata.
      protected java.lang.String compressionType
      The name of the compression type supported by this compressor.
      protected boolean isCompressionLossless
      Whether the compression is lossless.
      protected javax.imageio.metadata.IIOMetadata metadata
      The IIOMetadata object containing metadata for the current image.
      protected javax.imageio.stream.ImageOutputStream stream
      The ImageOutputStream to be written.
      protected javax.imageio.ImageWriter writer
      The ImageWriter calling this TIFFCompressor.
    • Constructor Summary

      Constructors 
      Constructor Description
      TIFFCompressor​(java.lang.String compressionType, int compressionTagValue, boolean isCompressionLossless)
      Creates a compressor object for use in compressing TIFF data.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void dispose()
      Allows any resources held by this object to be released.
      abstract int encode​(byte[] b, int off, int width, int height, int[] bitsPerSample, int scanlineStride)
      Encodes the supplied image data, writing to the currently set ImageOutputStream.
      int getCompressionTagValue()
      Retrieve the value to be assigned to the TIFF Compression tag in the TIFF image metadata.
      java.lang.String getCompressionType()
      Retrieve the name of the compression type supported by this compressor.
      javax.imageio.metadata.IIOMetadata getMetadata()
      Returns the current IIOMetadata object.
      javax.imageio.stream.ImageOutputStream getStream()
      Returns the ImageOutputStream that will be written.
      javax.imageio.ImageWriter getWriter()
      Returns the current ImageWriter.
      boolean isCompressionLossless()
      Retrieves a value indicating whether the compression is lossless.
      void setMetadata​(javax.imageio.metadata.IIOMetadata metadata)
      Sets the value of the metadata field.
      void setStream​(javax.imageio.stream.ImageOutputStream stream)
      Sets the ImageOutputStream to be written.
      void setWriter​(javax.imageio.ImageWriter writer)
      Sets the value of the writer field.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • writer

        protected javax.imageio.ImageWriter writer
        The ImageWriter calling this TIFFCompressor.
      • metadata

        protected javax.imageio.metadata.IIOMetadata metadata
        The IIOMetadata object containing metadata for the current image.
      • compressionType

        protected java.lang.String compressionType
        The name of the compression type supported by this compressor.
      • compressionTagValue

        protected int compressionTagValue
        The value to be assigned to the TIFF Compression tag in the TIFF image metadata.
      • isCompressionLossless

        protected boolean isCompressionLossless
        Whether the compression is lossless.
      • stream

        protected javax.imageio.stream.ImageOutputStream stream
        The ImageOutputStream to be written.
    • Constructor Detail

      • TIFFCompressor

        public TIFFCompressor​(java.lang.String compressionType,
                              int compressionTagValue,
                              boolean isCompressionLossless)
        Creates a compressor object for use in compressing TIFF data. This object may be passed to the TIFFImageWriteParam.setTIFFCompressor(TIFFCompressor) method to override the compressor of a supported compression type or to provide the implementation of the compression algorithm of an unsupported compression type.

        The parameters compressionTagValue and isCompressionLossless are provided to accomodate compression types which are unknown. A compression type is "known" if it is either among those already supported by the TIFF writer (see TIFFImageWriteParam), or is listed in the TIFF 6.0 specification but not supported. If the compression type is unknown, the compressionTagValue and isCompressionLossless parameters are ignored.

        Parameters:
        compressionType - The name of the compression type.
        compressionTagValue - The value to be assigned to the TIFF Compression tag in the TIFF image metadata; ignored if compressionType is a known type.
        isCompressionLossless - Whether the compression is lossless; ignored if compressionType is a known type.
        Throws:
        java.lang.IllegalArgumentException - if compressionType is null or compressionTagValue is less than 1.
    • Method Detail

      • getCompressionType

        public java.lang.String getCompressionType()
        Retrieve the name of the compression type supported by this compressor.
        Returns:
        The compression type name.
      • getCompressionTagValue

        public int getCompressionTagValue()
        Retrieve the value to be assigned to the TIFF Compression tag in the TIFF image metadata.
        Returns:
        The Compression tag value.
      • isCompressionLossless

        public boolean isCompressionLossless()
        Retrieves a value indicating whether the compression is lossless.
        Returns:
        Whether the compression is lossless.
      • setStream

        public void setStream​(javax.imageio.stream.ImageOutputStream stream)
        Sets the ImageOutputStream to be written.
        Parameters:
        stream - an ImageOutputStream to be written.
        See Also:
        getStream()
      • getStream

        public javax.imageio.stream.ImageOutputStream getStream()
        Returns the ImageOutputStream that will be written.
        Returns:
        an ImageOutputStream.
        See Also:
        setStream(ImageOutputStream)
      • setWriter

        public void setWriter​(javax.imageio.ImageWriter writer)
        Sets the value of the writer field.
        Parameters:
        writer - the current ImageWriter.
        See Also:
        getWriter()
      • getWriter

        public javax.imageio.ImageWriter getWriter()
        Returns the current ImageWriter.
        Returns:
        an ImageWriter.
        See Also:
        setWriter(ImageWriter)
      • setMetadata

        public void setMetadata​(javax.imageio.metadata.IIOMetadata metadata)
        Sets the value of the metadata field.
        Parameters:
        metadata - the IIOMetadata object for the image being written.
        See Also:
        getMetadata()
      • getMetadata

        public javax.imageio.metadata.IIOMetadata getMetadata()
        Returns the current IIOMetadata object.
        Returns:
        the IIOMetadata object for the image being written.
        See Also:
        setMetadata(IIOMetadata)
      • encode

        public abstract int encode​(byte[] b,
                                   int off,
                                   int width,
                                   int height,
                                   int[] bitsPerSample,
                                   int scanlineStride)
                            throws java.io.IOException
        Encodes the supplied image data, writing to the currently set ImageOutputStream.
        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.
      • dispose

        public void dispose()
        Allows any resources held by this object to be released. The result of calling any other method (other than finalize) subsequent to a call to this method is undefined.

        It is important for applications to call this method when they know they will no longer be using this TIFFCompressor. Otherwise, the writer may continue to hold on to resources indefinitely.

        The default implementation of this method in the superclass does nothing. Subclass implementations should ensure that all resources, especially native resources, are released.