|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--jj2000.j2k.image.ImgDataJoiner
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.
ImgData
,
ImgReader
Field Summary | |
private int[] |
compIdx
The component index associated with each ImgData |
private int |
h
The height of the image |
private BlkImgDataSrc[] |
imageData
The list of input ImgData |
private int |
nc
The number of components in the image |
private int[] |
subsX
The subsampling factor along the horizontal direction, for every component |
private int[] |
subsY
The subsampling factor along the vertical direction, for every component |
private int |
w
The width of the image |
Constructor Summary | |
ImgDataJoiner(BlkImgDataSrc[] imD,
int[] cIdx)
Class constructor. |
Method Summary | |
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. |
int |
getCompImgHeight(int n)
Returns the height in pixels of the specified component in the overall image. |
int |
getCompImgWidth(int c)
Returns the width in pixels of the specified component in the overall image. |
int |
getCompSubsX(int c)
Returns the component subsampling factor in the horizontal direction, for the specified component. |
int |
getCompSubsY(int c)
Returns the component subsampling factor in the vertical direction, for the specified component. |
int |
getCompULX(int c)
Returns the horizontal coordinate of the upper-left corner of the specified component in the current tile. |
int |
getCompULY(int c)
Returns the vertical coordinate of the upper-left corner of the specified component in the current tile. |
int |
getFixedPoint(int c)
Returns the position of the fixed point in the specified component. |
int |
getImgHeight()
Returns the overall height of the image in pixels. |
int |
getImgULX()
Returns the horizontal coordinate of the image origin, the top-left corner, in the canvas system, on the reference grid. |
int |
getImgULY()
Returns the vertical coordinate of the image origin, the top-left corner, in the canvas system, on the reference grid. |
int |
getImgWidth()
Returns the overall width of the image in pixels. |
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. |
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. |
int |
getNomTileHeight()
Returns the nominal tiles height |
int |
getNomTileWidth()
Returns the nominal tiles width |
int |
getNumComps()
Returns the number of components in the image. |
int |
getNumTiles()
Returns the total number of tiles in the image. |
Coord |
getNumTiles(Coord co)
Returns the number of tiles in the horizontal and vertical directions. |
Coord |
getTile(Coord co)
Returns the coordinates of the current tile. |
int |
getTileCompHeight(int t,
int c)
Returns the height in pixels of the specified tile-component. |
int |
getTileCompWidth(int t,
int c)
Returns the width in pixels of the specified tile-component |
int |
getTileHeight()
Returns the overall height of the current tile in pixels. |
int |
getTileIdx()
Returns the index of the current tile, relative to a standard scan-line order. |
int |
getTilePartULX()
Returns the horizontal tile partition offset in the reference grid |
int |
getTilePartULY()
Returns the vertical tile partition offset in the reference grid |
int |
getTileWidth()
Returns the overall width of the current tile in pixels. |
void |
nextTile()
Advances to the next tile, in standard scan-line order (by rows then columns). |
void |
setTile(int x,
int y)
Changes the current tile, given the new coordinates. |
java.lang.String |
toString()
Returns a string of information about the object, more than 1 line long. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
private int w
private int h
private int nc
private BlkImgDataSrc[] imageData
private int[] compIdx
private int[] subsX
private int[] subsY
Constructor Detail |
public ImgDataJoiner(BlkImgDataSrc[] imD, int[] cIdx)
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.
imD
- The list of input BlkImgDataSrc in an array.cIdx
- The component index associated with each ImgData.Method Detail |
public int getTileWidth()
getTileWidth
in interface ImgData
public int getTileHeight()
getTileHeight
in interface ImgData
public int getNomTileWidth()
getNomTileWidth
in interface ImgData
public int getNomTileHeight()
getNomTileHeight
in interface ImgData
public int getImgWidth()
getImgWidth
in interface ImgData
public int getImgHeight()
getImgHeight
in interface ImgData
public int getNumComps()
getNumComps
in interface ImgData
public int getCompSubsX(int c)
getCompSubsX
in interface ImgData
c
- The index of the component (between 0 and N-1)
ImgData
public int getCompSubsY(int c)
getCompSubsY
in interface ImgData
c
- The index of the component (between 0 and N-1)
ImgData
public int getTileCompWidth(int t, int c)
getTileCompWidth
in interface ImgData
t
- Tile indexc
- The index of the component, from 0 to N-1.
public int getTileCompHeight(int t, int c)
getTileCompHeight
in interface ImgData
t
- The tile index.c
- The index of the component, from 0 to N-1.
public int getCompImgWidth(int c)
getCompImgWidth
in interface ImgData
c
- The index of the component, from 0 to N-1.
public int getCompImgHeight(int n)
getCompImgHeight
in interface ImgData
n
- The index of the component, from 0 to N-1.
public int getNomRangeBits(int c)
getNomRangeBits
in interface ImgData
c
- The index of the component.
public int getFixedPoint(int c)
getFixedPoint
in interface BlkImgDataSrc
c
- The index of the component.
public DataBlk getInternCompData(DataBlk blk, int c)
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.
getInternCompData
in interface BlkImgDataSrc
blk
- Its coordinates and dimensions specify the area to return,
relative to the current tile. Some fields in this object are modified
to return the data.c
- The index of the component from which to get the data.
getCompData(jj2000.j2k.image.DataBlk, int)
public DataBlk getCompData(DataBlk blk, int c)
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.
getCompData
in interface BlkImgDataSrc
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 new
one is created. Some fields in this object are modified to return the
data.c
- The index of the component from which to get the data.
getInternCompData(jj2000.j2k.image.DataBlk, int)
public void setTile(int x, int y)
setTile
in interface ImgData
x
- The horizontal coordinate of the tile.y
- The vertical coordinate of the new tile.public void nextTile()
nextTile
in interface ImgData
public Coord getTile(Coord co)
getTile
in interface ImgData
co
- If not null this object is used to return the information. If
null a new one is created and returned.
public int getTileIdx()
getTileIdx
in interface ImgData
public int getCompULX(int c)
getCompULX
in interface ImgData
c
- The component index.public int getCompULY(int c)
getCompULY
in interface ImgData
c
- The component index.public int getTilePartULX()
getTilePartULX
in interface ImgData
public int getTilePartULY()
getTilePartULY
in interface ImgData
public int getImgULX()
getImgULX
in interface ImgData
public int getImgULY()
getImgULY
in interface ImgData
public Coord getNumTiles(Coord co)
getNumTiles
in interface ImgData
co
- If not null this object is used to return the information. If
null a new one is created and returned.
public int getNumTiles()
getNumTiles
in interface ImgData
public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |