| java.lang.Object org.libtiff.jai.codec.XTIFFTileCodecImpl
All known Subclasses: org.libtiff.jai.codecimpl.XTIFFLZWTileCodec, org.libtiff.jai.codecimpl.XTIFFFaxTileCodec, org.libtiff.jai.codecimpl.XTIFFUncompTileCodec, org.libtiff.jai.codecimpl.XTIFFPackTileCodec,
XTIFFTileCodecImpl | abstract public class XTIFFTileCodecImpl implements XTIFFTileCodec(Code) | | Provides a base class for writing TIFF tile codecs, to
be registered with the XTIFFDirectory. This codec allows
for both decoding and (optionally) encoding of tiles, and
also handles the colorspace conversion in decoding.
At the minimum you will need to implement the two methods
decodeTilePixels() for byte and short data, as well as
the methods register() and create(). If your decoder
requires additional parameters from the tags, set them up in
initializeDecoding(), and initializeEncoding() for encoding.
To implement encoding, you must override the canEncode() method
to return true, and implement encodeTilePixels().
author: Niles Ritter See Also: XTIFFTileCodec |
Method Summary | |
public boolean | canEncode() Indicate whether this codec can encode data. | abstract public XTIFFTileCodec | create() Implement this to return the corresponding empty
codec object. | public XTIFFTileCodec | create(XTIFFEncodeParam param) The method for creating an encoder from
the XTIFFEncodeParam information. | public XTIFFTileCodec | create(XTIFFDecodeParam param) | public WritableRaster | decode(RenderedImage img, Rectangle newRect, byte[] bpixels) Decode a rectangle of data stored in bpixels
into a raster tile. | protected void | decodeColor(Rectangle newRect) Postprocess the uncompressed color data into
the appropriate display color model. | protected void | decodeColor(byte[] bpix, short[] sdata, Rectangle newRect) Decode short pixel data, or interpret palette data
as short from byte. | protected void | decodeColor(short[] spix, short[] sdata, Rectangle newRect) Decode short color data, or interpret palette data
as short. | protected void | decodeColor(byte[] bpix, byte[] bdata, Rectangle newRect) | abstract public void | decodeTilePixels(byte[] bpixels, Rectangle rect, byte[] pixels) decode bpixel byte array of data into pixels, packed
for 1,2,4 8 bit pixels. | abstract public void | decodeTilePixels(byte[] bpixels, Rectangle rect, short[] pixels) decode bpixel byte array of data into pixels, packed
for 16 bit pixels. | protected void | decodeTilePixels(byte[] bpixels, Rectangle newRect) Decode a tile of data into either byte or short pixel buffers.
Override this if you have other buffer types (e.g. | public int | encode(RenderedImage img, Rectangle rect, byte[] bpixels) Encode the data into buffer and return byte count
Normally you will not need to override this method,
but instead implement the encodeTilePixels() method. | public int | encodeTilePixels(int[] pixels, Rectangle rect, byte[] bpixels) encode the tile in pixels into bpixels and return the byte
size of the compressed data. | public int | getCompressedTileSize(RenderedImage im) If derived classes can make a better estimate
for the maximum size of a compressed tile,
they should override this, which assumes
conservatively that it won't be worse than
twice the original size. | public int | getCompression() | protected long | getLongField(int fld) A common utility method for accessing the XTIFFFields
in the current image directory. | protected void | getTilePixels(Rectangle rect) Get the portion of tile fitting into buffer. | public void | initialize() The method for initializing information common
to both encoder and decoder. | protected void | initialize(XTIFFEncodeParam param) | protected void | initialize(XTIFFDecodeParam param) | public void | initializeDecoding() The initialization method particular to decoding.
Extend for whatever compression-specific information
or parameters is needed. | public void | initializeEncoding() The initialization method particular to encoding.
Extend for whatever compression-specific information
or parameters is needed. | abstract public void | register() Registration method. | public void | register(int comp) This method may be used by the implementations register()
method to register itself with the XTIFFDirectory. | protected WritableRaster | setTilePixels(Rectangle rect) Take the values from the buffer and store them in
a WritableRaster object. | protected void | setupBufferForDecoding() One-time setup for encoding. | protected void | setupBufferForEncoding() | protected void | setupSourceImage(RenderedImage img) | protected void | unpackShorts(byte byteArray, short output, int shortCount) A useful Method to interpret a byte array as shorts. |
_bdata | protected byte _bdata(Code) | | |
_sdata | protected short _sdata(Code) | | |
bitsPerSample | protected char[] bitsPerSample(Code) | | |
bpixvals | protected byte[] bpixvals(Code) | | |
buffer | protected DataBuffer buffer(Code) | | |
colormap | protected char[] colormap(Code) | | |
compression | protected int compression(Code) | | |
dataType | protected int dataType(Code) | | |
decodePaletteAsShorts | protected boolean decodePaletteAsShorts(Code) | | |
image | protected RenderedImage image(Code) | | |
image_type | protected int image_type(Code) | | |
isTiled | protected boolean isTiled(Code) | | |
length | protected int length(Code) | | |
numBands | protected int numBands(Code) | | |
sampleModel | protected SampleModel sampleModel(Code) | | |
sampleSize | protected int[] sampleSize(Code) | | |
spixvals | protected short[] spixvals(Code) | | |
tileLength | protected int tileLength(Code) | | |
tileWidth | protected int tileWidth(Code) | | |
unitsInThisTile | protected int unitsInThisTile(Code) | | |
width | protected int width(Code) | | |
XTIFFTileCodecImpl | public XTIFFTileCodecImpl()(Code) | | The empty constructor.
|
canEncode | public boolean canEncode()(Code) | | Indicate whether this codec can encode data.
Override to return true only if your codec implments encoding.
|
create | abstract public XTIFFTileCodec create()(Code) | | Implement this to return the corresponding empty
codec object.
|
decode | public WritableRaster decode(RenderedImage img, Rectangle newRect, byte[] bpixels)(Code) | | Decode a rectangle of data stored in bpixels
into a raster tile. Usually you will not need
to override this, but instead implement the
decodeTilePixels methods.
|
decodeColor | protected void decodeColor(Rectangle newRect)(Code) | | Postprocess the uncompressed color data into
the appropriate display color model. This implementation
Does a number of things:
- For RGB color, reverse to BGR which apparently
is faster for Java 2D display
- For one-bit WHITE_IS_ZERO data, flip the values
so that they will look correct
- If the decodePaletteAsShorts flag is true then
unpack the bits and apply the lookup table, as
16-bit lookup is not supported in JAI.
Override this if you have other color types.
See Also: XTIFFDecodeParam |
decodeColor | protected void decodeColor(byte[] bpix, short[] sdata, Rectangle newRect)(Code) | | Decode short pixel data, or interpret palette data
as short from byte.
|
decodeColor | protected void decodeColor(short[] spix, short[] sdata, Rectangle newRect)(Code) | | Decode short color data, or interpret palette data
as short.
|
decodeColor | protected void decodeColor(byte[] bpix, byte[] bdata, Rectangle newRect)(Code) | | Decode byte color data
|
decodeTilePixels | abstract public void decodeTilePixels(byte[] bpixels, Rectangle rect, byte[] pixels)(Code) | | decode bpixel byte array of data into pixels, packed
for 1,2,4 8 bit pixels. Must implment this.
Parameters: bpixels - the byte array of compressed input data Parameters: rect - the rectangular shape of the target pixels Parameters: pixels - the target decompressed pixels. |
decodeTilePixels | abstract public void decodeTilePixels(byte[] bpixels, Rectangle rect, short[] pixels)(Code) | | decode bpixel byte array of data into pixels, packed
for 16 bit pixels. Must implment this.
Parameters: bpixels - the byte array of compressed input data Parameters: rect - the rectangular shape of the target pixels Parameters: pixels - the target decompressed pixels. |
decodeTilePixels | protected void decodeTilePixels(byte[] bpixels, Rectangle newRect)(Code) | | Decode a tile of data into either byte or short pixel buffers.
Override this if you have other buffer types (e.g. int)
|
encode | public int encode(RenderedImage img, Rectangle rect, byte[] bpixels)(Code) | | Encode the data into buffer and return byte count
Normally you will not need to override this method,
but instead implement the encodeTilePixels() method.
|
encodeTilePixels | public int encodeTilePixels(int[] pixels, Rectangle rect, byte[] bpixels)(Code) | | encode the tile in pixels into bpixels and return the byte
size of the compressed data.
Override this method if canEncode() = true;
Parameters: pixels - input pixels Parameters: rect - the array dimensions of samples Parameters: bpixels - the target array of compressed byte data |
getCompressedTileSize | public int getCompressedTileSize(RenderedImage im)(Code) | | If derived classes can make a better estimate
for the maximum size of a compressed tile,
they should override this, which assumes
conservatively that it won't be worse than
twice the original size.
Parameters: im - the rendered image containing the image data |
getCompression | public int getCompression()(Code) | | Returns the TIFF compression type
|
getLongField | protected long getLongField(int fld)(Code) | | A common utility method for accessing the XTIFFFields
in the current image directory.
|
getTilePixels | protected void getTilePixels(Rectangle rect)(Code) | | Get the portion of tile fitting into buffer.
You probably won't need to override this.
Parameters: rect - the region to extract from image. |
initialize | public void initialize()(Code) | | The method for initializing information common
to both encoder and decoder.
|
initializeDecoding | public void initializeDecoding()(Code) | | The initialization method particular to decoding.
Extend for whatever compression-specific information
or parameters is needed. The decoding parameter has
already been assigned at this point, as well as the
XTIFFDirectory parsed from the input stream, and so
all XTIFFFields are available.
|
initializeEncoding | public void initializeEncoding()(Code) | | The initialization method particular to encoding.
Extend for whatever compression-specific information
or parameters is needed. The decoding parameter has
already been assigned at this point, as well as the
XTIFFDirectory parsed from the input stream, and so
all XTIFFFields are available.
|
register | abstract public void register()(Code) | | Registration method. Must be implemented by the
extended class to register itself with the
XTIFFDirectory for all compression codes it
supports (e.g Fax codec supports 3 codes).
See Also: XTIFFDirectory |
register | public void register(int comp)(Code) | | This method may be used by the implementations register()
method to register itself with the XTIFFDirectory.
See Also: XTIFFDirectory |
setTilePixels | protected WritableRaster setTilePixels(Rectangle rect)(Code) | | Take the values from the buffer and store them in
a WritableRaster object.
|
setupBufferForDecoding | protected void setupBufferForDecoding()(Code) | | One-time setup for encoding. Some configurations
require a temp array for unpacking 16-bit palette data.
|
setupBufferForEncoding | protected void setupBufferForEncoding()(Code) | | One-time setup for encoding
|
setupSourceImage | protected void setupSourceImage(RenderedImage img)(Code) | | One-time common image parameter setup
Parameters: img - the source image that will be encoded into a TIFF formatted stream, orthe TIFF image from which Raster tiles will be decoded. |
unpackShorts | protected void unpackShorts(byte byteArray, short output, int shortCount)(Code) | | A useful Method to interpret a byte array as shorts. Method depends on
whether the bytes are stored in a big endian or little endian format.
|
|
|