| java.lang.Object jj2000.j2k.image.DataBlk
All known Subclasses: jj2000.j2k.image.DataBlkInt, jj2000.j2k.image.DataBlkFloat,
DataBlk | abstract public class DataBlk (Code) | | This is a generic abstract class to store data from a block of an
image. This class does not have the notion of components. Therefore, it
should be used for data from a single component. Subclasses should
implement the different types of storage (int,
float, etc.).
The data is always stored in one array, of the type matching the data
type (i.e. for 'int' it's an 'int[]'). The data should be stored in the
array in standard scan-line order. That is the samples go from the top-left
corner of the code-block to the lower-right corner by line and then column.
The member variable 'offset' gives the index in the array of the first
data element (i.e. the top-left coefficient (ulx,uly)). The member variable
'scanw' gives the width of the scan that is used to store the data, that
can be different from the width of the block. Element '(x,y)' of the
code-block (i.e. '(ulx,uly)' is the top-left coefficient), will appear at
position 'offset+(y-uly)*scanw+(x-ulx)' in the array of data.
A block of data can have the progressive attribute
set. Data is progressive when it is obtained by successive
refinement and the values in this block are approximations of the
"final" values. When the final values are returned the progressive
attribute must be turned off.
The classes DataBlkInt and DataBlkFloat
provide implementations for int and float types
respectively.
See Also: DataBlkInt See Also: DataBlkFloat |
Field Summary | |
final public static int | TYPE_BYTE The identifier for the byte data type, as signed 8
bits. | final public static int | TYPE_FLOAT | final public static int | TYPE_INT The identifier for the int data type, as signed 32
bits. | final public static int | TYPE_SHORT The identifier for the short data type, as signed 16
bits. | public int | h The height of the block, in pixels. | public int | offset | public boolean | progressive | public int | scanw | public int | ulx The horizontal coordinate (in pixels) of the upper-left corner
of the block of data. | public int | uly The vertical coordinate of the upper-left corner of the block
of data. | public int | w The width of the block, in pixels. |
Method Summary | |
abstract public Object | getData() Returns the array containing the data, or null if there is no
data. | abstract public int | getDataType() Returns the data type of the DataBlk object, as
defined in this class. | public static int | getSize(int type) Returns the size in bits, given the data type. | abstract public void | setData(Object arr) Sets the data array to the specified one. | public String | toString() |
TYPE_BYTE | final public static int TYPE_BYTE(Code) | | The identifier for the byte data type, as signed 8
bits.
|
TYPE_FLOAT | final public static int TYPE_FLOAT(Code) | | The identifier for the float data type
|
TYPE_INT | final public static int TYPE_INT(Code) | | The identifier for the int data type, as signed 32
bits.
|
TYPE_SHORT | final public static int TYPE_SHORT(Code) | | The identifier for the short data type, as signed 16
bits.
|
h | public int h(Code) | | The height of the block, in pixels.
|
offset | public int offset(Code) | | The offset in the array of the top-left coefficient
|
progressive | public boolean progressive(Code) | | The progressive attribute (false by default)
|
scanw | public int scanw(Code) | | The width of the scanlines used to store the data in the array
|
ulx | public int ulx(Code) | | The horizontal coordinate (in pixels) of the upper-left corner
of the block of data. This is relative to the component of the
image from where this block was filled or is to be filled.
|
uly | public int uly(Code) | | The vertical coordinate of the upper-left corner of the block
of data. This is relative to the component of the image from where
this block was filled or is to be filled.
|
w | public int w(Code) | | The width of the block, in pixels.
|
getData | abstract public Object getData()(Code) | | Returns the array containing the data, or null if there is no
data. The returned array is of the type returned by
getDataType() (e.g., for TYPE_INT, it is a
int[]).
Each implementing class should provide a type specific
equivalent method (e.g., getDataInt() in
DataBlkInt) which returns an array of the correct
type explicetely and not through an Object.
The array containing the data, or null ifthere is no data. See Also: DataBlk.getDataType |
getDataType | abstract public int getDataType()(Code) | | Returns the data type of the DataBlk object, as
defined in this class.
The data type of the object, as defined in thsi class. |
getSize | public static int getSize(int type)(Code) | | Returns the size in bits, given the data type. The data type
must be one defined in this class. An
IllegalArgumentException is thrown if type is
not defined in this class.
Parameters: type - The data type. The size in bits of the data type. |
setData | abstract public void setData(Object arr)(Code) | | Sets the data array to the specified one. The type of the
specified data array must match the one returned by
getDataType() (e.g., for TYPE_INT, it should
be a int[]). If the wrong type of array is given a
ClassCastException will be thrown.
The size of the array is not necessarily checked for
consistency with w and h or any other fields.
Each implementing class should provide a type specific
equivalent method (e.g., setDataInt() in
DataBlkInt) which takes an array of the correct
type explicetely and not through an Object.
Parameters: arr - The new data array to use See Also: DataBlk.getDataType |
toString | public String toString()(Code) | | Returns a string of informations about the DataBlk
Block dimensions and progressiveness in a string |
|
|