An interface describing objects that transform an
InputStream
into a
Raster
.
This interface is designed to allow decoding of formats that include information about the format of the encoded tile as well as ones that don't. In order to create a Raster
, at the very least, a Point
specifying the top left corner of the Raster
, a SampleModel
specifying the data layout and a DataBuffer
with the decoded pixel data are needed. The DataBuffer
can be created from the information from the SampleModel
and the decoded data. Therefore the absolute minimum information that is required in order to create a Raster
on decoding (aside from the decoded data itself) is a Point
specifying the top left corner of the Raster
and a SampleModel
specifying the data layout. The formats that do include this information should return true from the includesSampleModelInfo()
and includesLocationInfo()
from the associated TileCodecDescriptor
if they include information needed to create a SampleModel
and information needed to create the Point
respectively. The formats that do not include this information in the encoded stream should return false. The TileCodecParameterList
providing the decoding parameters will in this case be expected to contain a parameter named "sampleModel" with a non-null SampleModel
as its value. This SampleModel
will be used to create the decoded Raster
.
The formats that return true from includesSampleModelInfo()
should use the decode()
method to cause the decoding to take place, the ones that return false should specify the Point
location to the decoding process by using the decode(Point)
method. Similarly the SampleModel
must be specified as a parameter with a non-null value on the TileCodecParameterList
passed to this TileDecoder
if includesSampleModelInfo()
returns false. It is expected that the SampleModel
specified in the parameter list is the SampleModel
of the encoded tiles, in order to get a decoded Raster
that is equivalent to the one encoded. If the SampleModel
specified through the parameter list is different from those of the encoded tiles, the result of decoding is undefined.
If includesSampleModelInfo()
returns true, the SampleModel
(if present) on the TileCodecParameterList
is ignored.
@see TileCodecDescriptor
@see TileEncoder
@since JAI 1.1