C# Класс CSJ2K.j2k.image.ImgDataConverter

This class is responsible of all data type conversions. It should be used, at encoder side, between Tiler and ForwardWT modules and, at decoder side, between InverseWT/CompDemixer and ImgWriter modules. The conversion is realized when a block of data is requested: if source and destination data type are the same one, it does nothing, else appropriate cast is done. All the methods of the 'ImgData' interface are implemented by the 'ImgDataAdapter' class that is the superclass of this one, so they don't need to be reimplemented by subclasses.
Наследование: CSJ2K.j2k.image.ImgDataAdapter, BlkImgDataSrc
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
ImgDataConverter ( BlkImgDataSrc imgSrc ) : System

Constructs a new ImgDataConverter object that operates on the specified source of image data.

ImgDataConverter ( BlkImgDataSrc imgSrc, int fp ) : System

Constructs a new ImgDataConverter object that operates on the specified source of image data.

close ( ) : void

Closes the underlying file or network connection from where the image data is being read.

getCompData ( CSJ2K.j2k.image.DataBlk blk, int c ) : CSJ2K.j2k.image.DataBlk

Returns, in the blk argument, a block of image data containing the specifed rectangular area, in the specified component, using the 'transfer type' specified in the block given as argument. 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.

getFixedPoint ( int c ) : int

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.

getInternCompData ( CSJ2K.j2k.image.DataBlk blk, int c ) : CSJ2K.j2k.image.DataBlk

Returns, in the blk argument, a block of image data containing the specifed rectangular area, in the specified component, using the 'transfer type' defined in the block given as argument. 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.

If source data and expected data (blk) are using the same type, block returned without any modification. If not appropriate cast is used.

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.

isOrigSigned ( int c ) : bool

Returns true if the data read was originally signed in the specified component, false if not.

Приватные методы

Метод Описание
getData ( CSJ2K.j2k.image.DataBlk blk, int c, bool intern ) : CSJ2K.j2k.image.DataBlk

Implements the 'getInternCompData()' and the 'getCompData()' methods. The 'intern' flag signals which of the two methods should run as.

Описание методов

ImgDataConverter() публичный Метод

Constructs a new ImgDataConverter object that operates on the specified source of image data.
public ImgDataConverter ( BlkImgDataSrc imgSrc ) : System
imgSrc BlkImgDataSrc The source from where to get the data to be transformed /// ///
Результат System

ImgDataConverter() публичный Метод

Constructs a new ImgDataConverter object that operates on the specified source of image data.
public ImgDataConverter ( BlkImgDataSrc imgSrc, int fp ) : System
imgSrc BlkImgDataSrc The source from where to get the data to be transformed /// ///
fp int The number of fraction bits in the casted ints /// ///
Результат System

close() публичный Метод

Closes the underlying file or network connection from where the image data is being read.
If an I/O error occurs. ///
public close ( ) : void
Результат void

getCompData() публичный Метод

Returns, in the blk argument, a block of image data containing the specifed rectangular area, in the specified component, using the 'transfer type' specified in the block given as argument. 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.

public getCompData ( CSJ2K.j2k.image.DataBlk blk, int c ) : CSJ2K.j2k.image.DataBlk
blk CSJ2K.j2k.image.DataBlk 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 int The index of the component from which to get the data. /// ///
Результат CSJ2K.j2k.image.DataBlk

getFixedPoint() публичный Метод

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.
public getFixedPoint ( int c ) : int
c int The index of the component. /// ///
Результат int

getInternCompData() публичный Метод

Returns, in the blk argument, a block of image data containing the specifed rectangular area, in the specified component, using the 'transfer type' defined in the block given as argument. 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.

If source data and expected data (blk) are using the same type, block returned without any modification. If not appropriate cast is used.

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.

public getInternCompData ( CSJ2K.j2k.image.DataBlk blk, int c ) : CSJ2K.j2k.image.DataBlk
blk CSJ2K.j2k.image.DataBlk 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 int The index of the component from which to get the data. /// ///
Результат CSJ2K.j2k.image.DataBlk

isOrigSigned() публичный Метод

Returns true if the data read was originally signed in the specified component, false if not.
public isOrigSigned ( int c ) : bool
c int The index of the component, from 0 to C-1. /// ///
Результат bool