| java.lang.Object jj2000.j2k.image.ImgDataJoiner
ImgDataJoiner | public class ImgDataJoiner implements BlkImgDataSrc(Code) | | This class implements the ImgData interface and allows to obtain data from
different sources. Here, one source is represented by an ImgData and a
component index. The typical use of this class is when the encoder needs
different components (Red, Green, Blue, alpha, ...) from different input
files (i.e. from different ImgReader objects).
All input ImgData must not be tiled (i.e. must have only 1 tile) and the
image origin must be the canvas origin. The different inputs can have
different dimensions though (this will lead to different subsampling
factors for each component).
The input ImgData and component index list must be defined when
constructing this class and can not be modified later.
See Also: ImgData See Also: jj2000.j2k.image.input.ImgReader |
Method Summary | |
public DataBlk | getCompData(DataBlk blk, int c) Returns, in the blk argument, a block of image data containing the
specifed rectangular area, in the specified component. | public int | getCompImgHeight(int n) Returns the height in pixels of the specified component in the
overall image.
Parameters: n - The index of the component, from 0 to N-1. | public int | getCompImgWidth(int c) Returns the width in pixels of the specified component in the overall
image.
Parameters: c - The index of the component, from 0 to N-1. | public int | getCompSubsX(int c) Returns the component subsampling factor in the horizontal direction,
for the specified component. | public int | getCompSubsY(int c) Returns the component subsampling factor in the vertical direction, for
the specified component. | public int | getCompULX(int c) Returns the horizontal coordinate of the upper-left corner of the
specified component in the current tile. | public int | getCompULY(int c) Returns the vertical coordinate of the upper-left corner of the
specified component in the current tile. | public int | getFixedPoint(int c) Returns the position of the fixed point in the specified
component. | public int | getImgHeight() Returns the overall height of the image in pixels. | public int | getImgULX() Returns the horizontal coordinate of the image origin, the top-left
corner, in the canvas system, on the reference grid. | public int | getImgULY() Returns the vertical coordinate of the image origin, the top-left
corner, in the canvas system, on the reference grid. | public int | getImgWidth() Returns the overall width of the image in pixels. | public DataBlk | getInternCompData(DataBlk blk, int c) Returns, in the blk argument, a block of image data containing the
specifed rectangular area, in the specified component. | public int | getNomRangeBits(int c) Returns the number of bits, referred to as the "range bits",
corresponding to the nominal range of the data in the specified
component. | public int | getNomTileHeight() | public int | getNomTileWidth() | public int | getNumComps() Returns the number of components in the image. | public Point | getNumTiles(Point co) Returns the number of tiles in the horizontal and vertical
directions. | public int | getNumTiles() Returns the total number of tiles in the image. | public Point | getTile(Point co) Returns the coordinates of the current tile. | public int | getTileCompHeight(int t, int c) Returns the height in pixels of the specified tile-component.
Parameters: t - The tile index. Parameters: c - The index of the component, from 0 to N-1. | public int | getTileCompWidth(int t, int c) Returns the width in pixels of the specified tile-component
Parameters: t - Tile index Parameters: c - The index of the component, from 0 to N-1. | public int | getTileHeight() Returns the overall height of the current tile in pixels. | public int | getTileIdx() Returns the index of the current tile, relative to a standard scan-line
order. | public int | getTilePartULX() | public int | getTilePartULY() | public int | getTileWidth() Returns the overall width of the current tile in pixels. | public void | nextTile() Advances to the next tile, in standard scan-line order (by rows then
columns). | public void | setTile(int x, int y) Changes the current tile, given the new coordinates. | public String | toString() Returns a string of information about the object, more than 1 line
long. |
ImgDataJoiner | public ImgDataJoiner(BlkImgDataSrc[] imD, int[] cIdx)(Code) | | Class constructor. Each input BlkImgDataSrc and its component index
must appear in the order wanted for the output components.
Example: Reading R,G,B components from 3 PGM files.
BlkImgDataSrc[] idList =
{
new ImgReaderPGM(new BEBufferedRandomAccessFile("R.pgm", "r")),
new ImgReaderPGM(new BEBufferedRandomAccessFile("G.pgm", "r")),
new ImgReaderPGM(new BEBufferedRandomAccessFile("B.pgm", "r"))
};
int[] compIdx = {0,0,0};
ImgDataJoiner idj = new ImgDataJoiner(idList, compIdx);
Of course, the 2 arrays must have the same length (This length is
the number of output components). The image width and height are
definded to be the maximum values of all the input ImgData.
Parameters: imD - The list of input BlkImgDataSrc in an array. Parameters: cIdx - The component index associated with each ImgData. |
getCompData | public DataBlk getCompData(DataBlk blk, int c)(Code) | | Returns, in the blk argument, a block of image data containing the
specifed rectangular area, in the specified component. The data is
returned, as a copy of the internal data, therefore the returned data
can be modified "in place".
The rectangular area to return is specified by the 'ulx', 'uly', 'w'
and 'h' members of the 'blk' argument, relative to the current
tile. These members are not modified by this method. The 'offset' of
the returned data is 0, and the 'scanw' is the same as the block's
width. See the 'DataBlk' class.
This method, in general, is less efficient than the
'getInternCompData()' method since, in general, it copies the
data. However if the array of returned data is to be modified by the
caller then this method is preferable.
If the data array in 'blk' is 'null', then a new one is created. If
the data array is not 'null' then it is reused, and it must be large
enough to contain the block's data. Otherwise an 'ArrayStoreException'
or an 'IndexOutOfBoundsException' is thrown by the Java system.
The returned data may have its 'progressive' attribute set. In this
case the returned data is only an approximation of the "final" data.
Parameters: blk - Its coordinates and dimensions specify the area to return,relative to the current tile. If it contains a non-null data array,then it must be large enough. If it contains a null data array a newone is created. Some fields in this object are modified to return thedata. Parameters: c - The index of the component from which to get the data. The requested DataBlk See Also: ImgDataJoiner.getInternCompData |
getCompImgHeight | public int getCompImgHeight(int n)(Code) | | Returns the height in pixels of the specified component in the
overall image.
Parameters: n - The index of the component, from 0 to N-1. The height in pixels of component n in the overallimage. |
getCompImgWidth | public int getCompImgWidth(int c)(Code) | | Returns the width in pixels of the specified component in the overall
image.
Parameters: c - The index of the component, from 0 to N-1. The width in pixels of component c in the overallimage. |
getCompSubsX | public int getCompSubsX(int c)(Code) | | Returns the component subsampling factor in the horizontal direction,
for the specified component. This is, approximately, the ratio of
dimensions between the reference grid and the component itself, see the
'ImgData' interface desription for details.
Parameters: c - The index of the component (between 0 and N-1) The horizontal subsampling factor of component 'c' See Also: ImgData |
getCompSubsY | public int getCompSubsY(int c)(Code) | | Returns the component subsampling factor in the vertical direction, for
the specified component. This is, approximately, the ratio of
dimensions between the reference grid and the component itself, see the
'ImgData' interface desription for details.
Parameters: c - The index of the component (between 0 and N-1) The vertical subsampling factor of component 'c' See Also: ImgData |
getCompULX | public int getCompULX(int c)(Code) | | Returns the horizontal coordinate of the upper-left corner of the
specified component in the current tile.
Parameters: c - The component index. |
getCompULY | public int getCompULY(int c)(Code) | | Returns the vertical coordinate of the upper-left corner of the
specified component in the current tile.
Parameters: c - The component index. |
getFixedPoint | public int getFixedPoint(int c)(Code) | | Returns the position of the fixed point in the specified
component. This is the position of the least significant integral
(i.e. non-fractional) bit, which is equivalent to the number of
fractional bits. For instance, for fixed-point values with 2 fractional
bits, 2 is returned. For floating-point data this value does not apply
and 0 should be returned. Position 0 is the position of the least
significant bit in the data.
Parameters: c - The index of the component. The position of the fixed-point, which is the same as thenumber of fractional bits. For floating-point data 0 is returned. |
getImgHeight | public int getImgHeight()(Code) | | Returns the overall height of the image in pixels. This is the image's
height without accounting for any component subsampling or tiling.
The total image's height in pixels. |
getImgULX | public int getImgULX()(Code) | | Returns the horizontal coordinate of the image origin, the top-left
corner, in the canvas system, on the reference grid.
The horizontal coordinate of the image origin in the canvassystem, on the reference grid. |
getImgULY | public int getImgULY()(Code) | | Returns the vertical coordinate of the image origin, the top-left
corner, in the canvas system, on the reference grid.
The vertical coordinate of the image origin in the canvassystem, on the reference grid. |
getImgWidth | public int getImgWidth()(Code) | | Returns the overall width of the image in pixels. This is the image's
width without accounting for any component subsampling or tiling.
The total image's width in pixels. |
getInternCompData | public DataBlk getInternCompData(DataBlk blk, int c)(Code) | | Returns, in the blk argument, a block of image data containing the
specifed rectangular area, in the specified component. The data is
returned, as a reference to the internal data, if any, instead of as a
copy, therefore the returned data should not be modified.
The rectangular area to return is specified by the 'ulx', 'uly', 'w'
and 'h' members of the 'blk' argument, relative to the current
tile. These members are not modified by this method. The 'offset' and
'scanw' of the returned data can be arbitrary. See the 'DataBlk' class.
This method, in general, is more efficient than the 'getCompData()'
method since it may not copy the data. However if the array of returned
data is to be modified by the caller then the other method is probably
preferable.
If the data array in blk is null, then a new one
is created if necessary. The implementation of this interface may
choose to return the same array or a new one, depending on what is more
efficient. Therefore, the data array in blk prior to the
method call should not be considered to contain the returned data, a
new array may have been created. Instead, get the array from
blk after the method has returned.
The returned data may have its 'progressive' attribute set. In this
case the returned data is only an approximation of the "final" data.
Parameters: blk - Its coordinates and dimensions specify the area to return,relative to the current tile. Some fields in this object are modifiedto return the data. Parameters: c - The index of the component from which to get the data. The requested DataBlk See Also: ImgDataJoiner.getCompData |
getNomRangeBits | public int getNomRangeBits(int c)(Code) | | Returns the number of bits, referred to as the "range bits",
corresponding to the nominal range of the data in the specified
component. If this number is b then for unsigned data the
nominal range is between 0 and 2^b-1, and for signed data it is between
-2^(b-1) and 2^(b-1)-1. For floating point data this value is not
applicable.
Parameters: c - The index of the component. The number of bits corresponding to the nominal range of thedata. Fro floating-point data this value is not applicable and thereturn value is undefined. |
getNomTileHeight | public int getNomTileHeight()(Code) | | Returns the nominal tiles height
|
getNomTileWidth | public int getNomTileWidth()(Code) | | Returns the nominal tiles width
|
getNumComps | public int getNumComps()(Code) | | Returns the number of components in the image.
The number of components in the image. |
getNumTiles | public Point getNumTiles(Point co)(Code) | | Returns the number of tiles in the horizontal and vertical
directions. This default implementation assumes no tiling, so (1,1) is
always returned.
Parameters: co - If not null this object is used to return the information. Ifnull a new one is created and returned. The number of tiles in the horizontal (Point.x) and vertical(Point.y) directions. |
getNumTiles | public int getNumTiles()(Code) | | Returns the total number of tiles in the image. This default
implementation assumes no tiling, so 1 is always returned.
The total number of tiles in the image. |
getTile | public Point getTile(Point co)(Code) | | Returns the coordinates of the current tile. This default
implementation assumes no-tiling, so (0,0) is returned.
Parameters: co - If not null this object is used to return the information. Ifnull a new one is created and returned. The current tile's coordinates. |
getTileCompHeight | public int getTileCompHeight(int t, int c)(Code) | | Returns the height in pixels of the specified tile-component.
Parameters: t - The tile index. Parameters: c - The index of the component, from 0 to N-1. The height in pixels of component c in the currenttile. |
getTileCompWidth | public int getTileCompWidth(int t, int c)(Code) | | Returns the width in pixels of the specified tile-component
Parameters: t - Tile index Parameters: c - The index of the component, from 0 to N-1. The width in pixels of component c in tilet. |
getTileHeight | public int getTileHeight()(Code) | | Returns the overall height of the current tile in pixels. This is the
tile's height without accounting for any component subsampling.
The total current tile's height in pixels. |
getTileIdx | public int getTileIdx()(Code) | | Returns the index of the current tile, relative to a standard scan-line
order. This default implementations assumes no tiling, so 0 is always
returned.
The current tile's index (starts at 0). |
getTilePartULX | public int getTilePartULX()(Code) | | Returns the horizontal tile partition offset in the reference grid
|
getTilePartULY | public int getTilePartULY()(Code) | | Returns the vertical tile partition offset in the reference grid
|
getTileWidth | public int getTileWidth()(Code) | | Returns the overall width of the current tile in pixels. This is the
tile's width without accounting for any component subsampling.
The total current tile's width in pixels. |
nextTile | public void nextTile()(Code) | | Advances to the next tile, in standard scan-line order (by rows then
columns). A NoNextElementException is thrown if the current tile is the
last one (i.e. there is no next tile). This default implementation
assumes no tiling, so NoNextElementException() is always thrown.
|
setTile | public void setTile(int x, int y)(Code) | | Changes the current tile, given the new coordinates. An
IllegalArgumentException is thrown if the coordinates do not correspond
to a valid tile.
Parameters: x - The horizontal coordinate of the tile. Parameters: y - The vertical coordinate of the new tile. |
toString | public String toString()(Code) | | Returns a string of information about the object, more than 1 line
long. The information string includes information from the several
input ImgData (their toString() method are called one after the other).
A string of information about the object. |
|
|