An instance of ImageEncodeParam for encoding images in
the TIFF format.
This class allows for the specification of encoding parameters. By
default, the image is encoded without any compression, and is written
out consisting of strips, not tiles. The particular compression scheme
to be used can be specified by using the setCompression()
method. The compression scheme specified will be honored only if it is
compatible with the type of image being written out. For example,
Group3 and Group4 compressions can only be used with Bilevel images.
Writing of tiled TIFF images can be enabled by calling the
setWriteTiled() method.
This class is not a committed part of the JAI API. It may
be removed or changed in future releases of JAI.
COMPRESSION_GROUP4 CCITT T.6 bilevel compression (CCITT Group 4 facsimile compression).
final public static int
COMPRESSION_JPEG_BROKEN Code for original JPEG-in-TIFF compression which has been
depricated (for many good reasons) in favor of Tech Note 2
JPEG compression (compression scheme 7).
getTileHeight() Retrieves the tile height set via setTileSize().
public int
getTileWidth() Retrieves the tile width set via setTileSize().
public boolean
getWriteTiled() Returns the value of the writeTiled parameter.
public void
setCompression(int compression) Specifies the type of compression to be used.
public void
setDeflateLevel(int deflateLevel) Sets the compression level for DEFLATE-compressed data which should
either be java.util.Deflater.DEFAULT_COMPRESSION or a
value in the range [1,9] where larger values indicate more compression.
The default setting is Deflater.DEFAULT_COMPRESSION.
public void
setExtraFields(TIFFField[] extraFields) Sets an array of extra fields to be written to the TIFF Image File
Directory (IFD).
public synchronized void
setExtraImages(Iterator extraImages) Sets an Iterator of additional images to be written
after the image passed as an argument to the ImageEncoder.
The methods on the supplied Iterator must only be invoked
by the ImageEncoder which will exhaust the available
values unless an error occurs.
The value returned by an invocation of next() on the
Iterator must return either a RenderedImage
or an Object[] of length 2 wherein the element at index
zero is a RenderedImage amd the other element is a
TIFFEncodeParam.
public void
setJPEGCompressRGBToYCbCr(boolean convertJPEGRGBToYCbCr) Sets flag indicating whether to convert RGB data to YCbCr when the
compression type is JPEG.
public void
setJPEGEncodeParam(JPEGEncodeParam jpegEncodeParam) Sets the JPEG compression parameters.
public void
setTileSize(int tileWidth, int tileHeight) Sets the dimensions of the tiles to be written.
public void
setWriteTiled(boolean writeTiled) If set, the data will be written out in tiled format, instead of
in strips.
CCITT T.6 bilevel compression (CCITT Group 4 facsimile compression).
Not currently supported.
COMPRESSION_JPEG_BROKEN
final public static int COMPRESSION_JPEG_BROKEN(Code)
Code for original JPEG-in-TIFF compression which has been
depricated (for many good reasons) in favor of Tech Note 2
JPEG compression (compression scheme 7).
Not supported.
COMPRESSION_JPEG_TTN2
final public static int COMPRESSION_JPEG_TTN2(Code)
Specifies the type of compression to be used. The compression type
specified will be honored only if it is compatible with the image
being written out. Currently only PackBits, JPEG, and DEFLATE
compression schemes are supported.
If compression is set to any value but
COMPRESSION_NONE and the OutputStream
supplied to the ImageEncoder is not a
SeekableOutputStream, then the encoder will use either
a temporary file or a memory cache when compressing the data
depending on whether the file system is accessible. Compression
will therefore be more efficient if a SeekableOutputStream
is supplied.
Parameters: compression - The compression type.
setDeflateLevel
public void setDeflateLevel(int deflateLevel)(Code)
Sets the compression level for DEFLATE-compressed data which should
either be java.util.Deflater.DEFAULT_COMPRESSION or a
value in the range [1,9] where larger values indicate more compression.
The default setting is Deflater.DEFAULT_COMPRESSION. This
setting is ignored if the compression type is not DEFLATE.
Sets an array of extra fields to be written to the TIFF Image File
Directory (IFD). Fields with tags equal to the tag of any
automatically generated fields are ignored. No error checking is
performed with respect to the validity of the field contents or
the appropriateness of the field for the image being encoded.
Parameters: extraFields - An array of extra fields; the parameter iscopied by reference.
setExtraImages
public synchronized void setExtraImages(Iterator extraImages)(Code)
Sets an Iterator of additional images to be written
after the image passed as an argument to the ImageEncoder.
The methods on the supplied Iterator must only be invoked
by the ImageEncoder which will exhaust the available
values unless an error occurs.
The value returned by an invocation of next() on the
Iterator must return either a RenderedImage
or an Object[] of length 2 wherein the element at index
zero is a RenderedImage amd the other element is a
TIFFEncodeParam. If no TIFFEncodeParam is
supplied in this manner for an additional image, the parameters used
to create the ImageEncoder will be used. The extra
image Iterator set on any TIFFEncodeParam
of an additional image will in all cases be ignored.
setJPEGCompressRGBToYCbCr
public void setJPEGCompressRGBToYCbCr(boolean convertJPEGRGBToYCbCr)(Code)
Sets flag indicating whether to convert RGB data to YCbCr when the
compression type is JPEG. The default value is true.
This flag is ignored if the compression type is not JPEG.
setJPEGEncodeParam
public void setJPEGEncodeParam(JPEGEncodeParam jpegEncodeParam)(Code)
Sets the JPEG compression parameters. These parameters are ignored
if the compression type is not JPEG. The argument may be
null to indicate that default compression parameters
are to be used. For maximum conformance with the specification it
is recommended in most cases that only the quality compression
parameter be set.
The writeTablesOnly and JFIFHeader
flags of the JPEGEncodeParam are ignored. The
writeImageOnly flag is used to determine whether the
JPEGTables field will be written to the TIFF stream: if
writeImageOnly is true, then the JPEGTables
field will be written and will contain a valid JPEG abbreviated
table specification datastream. In this case the data in each data
segment (strip or tile) will contain an abbreviated JPEG image
datastream. If the writeImageOnly flag is
false, then the JPEGTables field will not be written and
each data segment will contain a complete JPEG interchange datastream.
setTileSize
public void setTileSize(int tileWidth, int tileHeight)(Code)
Sets the dimensions of the tiles to be written. If either
value is non-positive, the encoder will use a default value.
If the data are being written as tiles, i.e.,
getWriteTiled() returns true, then the
default tile dimensions used by the encoder are those of the tiles
of the image being encoded.
If the data are being written as strips, i.e.,
getWriteTiled() returns false, the width
of each strip is always the width of the image and the default
number of rows per strip is 8.
If JPEG compession is being used, the dimensions of the strips or
tiles may be modified to conform to the JPEG-in-TIFF specification.
Parameters: tileWidth - The tile width; ignored if strips are used. Parameters: tileHeight - The tile height or number of rows per strip.
setWriteTiled
public void setWriteTiled(boolean writeTiled)(Code)
If set, the data will be written out in tiled format, instead of
in strips.
Parameters: writeTiled - Specifies whether the image data should be wriiten out in tiled format.