Package org.apache.sis.image
Class TransferType<T extends Buffer>
Object
TransferType<T>
- Type Parameters:
T- the type of buffer which can be used for transferring data.
- All Implemented Interfaces:
Serializable
The type of data used to transfer pixels. Data transfers happen in various
Raster methods and in
PixelIterator.createWindow(TransferType). The type used for transferring data is not necessarily
the same than the type used by the raster for storing data. In particular, byte and short
(both signed and unsigned) are converted to int during the transfer.
Raster and PixelIterator transfer data in int[], float[] and double[] arrays.
Additionally, PixelIterator uses also IntBuffer, FloatBuffer and DoubleBuffer.
Future evolution:
this class may be refactored as an enumeration in a future Java version if
JEP 301 is implemented.
- Since:
- 1.0
- See Also:
Defined in the sis-feature module
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final TransferType<DoubleBuffer>Specifies that sample values are transferred as double-precision floating point number.static final TransferType<FloatBuffer>Specifies that sample values are transferred as single-precision floating point number.static final TransferType<IntBuffer>Specifies that sample values are transferred as 32 bits signed integer. -
Method Summary
Modifier and TypeMethodDescriptionReturns the name of this enumeration constant.static TransferType<?>valueOf(int type) Returns the enumeration value for the givenDataBufferconstant.
-
Field Details
-
INT
Specifies that sample values are transferred as 32 bits signed integer. If the raster stores sample values asbyteorshort, the values are casted by a widening conversion before to be transferred. If the raster stores sample values asfloatordouble, the values are rounded toward 0 before to be transferred. -
FLOAT
Specifies that sample values are transferred as single-precision floating point number. Values of other types are casted as needed. -
DOUBLE
Specifies that sample values are transferred as double-precision floating point number. Values of other types are casted as needed. This is the safest transfer type to use when wanting to avoid any precision lost.
-
-
Method Details
-
valueOf
Returns the enumeration value for the givenDataBufferconstant. This method applies the following mapping:- If
typeisDataBuffer.TYPE_DOUBLE, returnsDOUBLE. - If
typeisDataBuffer.TYPE_FLOAT, returnsFLOAT. - If
typeisDataBuffer.TYPE_INT,TYPE_SHORT,TYPE_USHORTorTYPE_BYTE, returnsINT. - If
typeisDataBuffer.TYPE_UNDEFINEDor any other value, throwsIllegalArgumentException.
typeargument given to this method is typically theRaster.getTransferType()value.- Parameters:
type- one ofDataBufferconstant.- Returns:
- the enumeration value for the given constant.
- Throws:
IllegalArgumentException- if (@code type} is not a supportedDataBufferconstant.
- If
-
toString
Returns the name of this enumeration constant.
-