javax.media.jai.operator
Class FormatDescriptor
java.lang.Object
|
+--javax.media.jai.OperationDescriptorImpl
|
+--javax.media.jai.operator.FormatDescriptor
- All Implemented Interfaces:
- OperationDescriptor, RegistryElementDescriptor, Serializable
- public class FormatDescriptor
- extends OperationDescriptorImpl
An OperationDescriptor
describing the "Format" operation.
The "Format" operation performs reformatting on an image. It
is capable of casting the pixel values of an image to a given data
type, replacing the SampleModel and ColorModel of an image, and
restructuring the image's tile grid layout. The pixel values of
the destination image are defined by the pseudocode:
dst[x][y][b] = cast(src[x][y][b], dataType)
where "dataType" is one of the constants TYPE_BYTE, TYPE_SHORT,
TYPE_USHORT, TYPE_INT, TYPE_FLOAT, or TYPE_DOUBLE from
java.awt.image.DataBuffer
.
The output SampleModel, ColorModel and tile grid layout are
specified by passing an ImageLayout object as a RenderingHint named
"ImageLayout". The output image will have a SampleModel compatible
with the one specified in the layout hint wherever possible;
however, for output data types of float
and
double a ComponentSampleModel
will be used
regardless of the value of the hint parameter.
The ImageLayout may also specify a tile grid origin and size
which will be respected.
The typecasting performed by the Format
function
is defined by the following set of expressions, dependent on the
data types of the source and destination. Casting an image to its
current data type is a no-op. See The
Java Language Specification for the definition of type
conversions between primitive types.
In most cases, it is not necessary to explictly perform widening
typecasts since they will be performed automatically by image
operators when handed source images having different datatypes.
Source Type | Destination Type | Action |
BYTE | SHORT | (short)(x & 0xff) |
BYTE | USHORT | (short)(x & 0xff) |
BYTE | INT | (int)(x & 0xff) |
BYTE | FLOAT | (float)(x & 0xff) |
BYTE | DOUBLE | (double)(x & 0xff) |
SHORT | BYTE | (byte)clamp((int)x, 0, 255) |
SHORT | USHORT | (short)clamp((int)x, 0, 32767) |
SHORT | INT | (int)x |
SHORT | FLOAT | (float)x |
SHORT | DOUBLE | (double)x |
USHORT | BYTE | (byte)clamp((int)x & 0xffff, 0, 255) |
USHORT | SHORT | (short)clamp((int)x & 0xffff, 0, 32767) |
USHORT | INT | (int)(x & 0xffff) |
USHORT | FLOAT | (float)(x & 0xffff) |
USHORT | DOUBLE | (double)(x & 0xffff) |
INT | BYTE | (byte)clamp(x, 0, 255) |
INT | SHORT | (short)clamp(x, -32768, 32767) |
INT | USHORT | (short)clamp(x, 0, 65535) |
INT | FLOAT | (float)x |
INT | DOUBLE | (double)x |
FLOAT | BYTE | (byte)clamp((int)x, 0, 255) |
FLOAT | SHORT | (short)clamp((int)x, -32768, 32767) |
FLOAT | USHORT | (short)clamp((int)x, 0, 65535) |
FLOAT | INT | (int)x |
FLOAT | DOUBLE | (double)x |
DOUBLE | BYTE | (byte)clamp((int)x, 0, 255) |
DOUBLE | SHORT | (short)clamp((int)x, -32768, 32767) |
DOUBLE | USHORT | (short)clamp((int)x, 0, 65535) |
DOUBLE | INT | (int)x |
DOUBLE | FLOAT | (float)x |
The clamp
function may be defined as:
int clamp(int x, int low, int high) {
return (x < low) ? low : ((x > high) ? high : x);
}
Resource List
Name | Value |
GlobalName | Format |
LocalName | Format |
Vendor | com.sun.media.jai |
Description | Reformats an image. |
DocURL | http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/operator/FormatDescriptor.html |
Version | 1.0 |
arg0Desc | The output data type (from java.awt.image.DataBuffer). |
Parameter List
Name | Class Type |
Default Value |
dataType | java.lang.Integer |
DataBuffer.TYPE_BYTE |
- See Also:
DataBuffer
,
ImageLayout
,
OperationDescriptor
, Serialized Form
Method Summary |
Number |
getParamMaxValue(int index)
Returns the maximum legal value of a specified numeric parameter
for this operation. |
Number |
getParamMinValue(int index)
Returns the minimum legal value of a specified numeric parameter
for this operation. |
boolean |
isRenderableSupported()
Returns true since renderable operation is supported. |
Methods inherited from class javax.media.jai.OperationDescriptorImpl |
arePropertiesSupported,
getDefaultSourceClass,
getDestClass,
getDestClass,
getInvalidRegion,
getName,
getNumParameters,
getNumSources,
getParamClasses,
getParamDefaults,
getParamDefaultValue,
getParameterListDescriptor,
getParamNames,
getPropertyGenerators,
getPropertyGenerators,
getRenderableDestClass,
getRenderableSourceClasses,
getResourceBundle,
getResources,
getSourceClasses,
getSourceClasses,
getSourceNames,
getSupportedModes,
isImmediate,
isModeSupported,
isRenderedSupported,
makeDefaultSourceClassList,
validateArguments,
validateArguments,
validateParameters,
validateParameters,
validateRenderableArguments,
validateRenderableSources,
validateSources,
validateSources |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
FormatDescriptor
public FormatDescriptor()
- Constructor.
isRenderableSupported
public boolean isRenderableSupported()
- Returns
true
since renderable operation is supported.
- Overrides:
- isRenderableSupported in class OperationDescriptorImpl
- Tags copied from class: OperationDescriptorImpl
- See Also:
OperationDescriptorImpl.isModeSupported(java.lang.String)
getParamMinValue
public Number getParamMinValue(int index)
- Returns the minimum legal value of a specified numeric parameter
for this operation.
- Overrides:
- getParamMinValue in class OperationDescriptorImpl
- Tags copied from class: OperationDescriptorImpl
- Parameters:
index
- The index of the parameter to be queried.- Returns:
- A
Number
representing the minimum legal value,
or null
if the specified parameter is not
numeric. - Throws:
- IllegalArgumentException - if this operation has no parameters.
- ArrayIndexOutOfBoundsException - if there is no parameter
corresponding to the specified
index
. - See Also:
ParameterListDescriptor.getParamValueRange(java.lang.String)
,
ParameterListDescriptor.getEnumeratedParameterValues(java.lang.String)
,
ParameterListDescriptor.isParameterValueValid(java.lang.String, java.lang.Object)
getParamMaxValue
public Number getParamMaxValue(int index)
- Returns the maximum legal value of a specified numeric parameter
for this operation.
- Overrides:
- getParamMaxValue in class OperationDescriptorImpl
- Tags copied from class: OperationDescriptorImpl
- Parameters:
index
- The index of the parameter to be queried.- Returns:
- A
Number
representing the maximum legal value,
or null
if the specified parameter is not
numeric. - Throws:
- IllegalArgumentException - if this operation has no parameters.
- ArrayIndexOutOfBoundsException - if there is no parameter
corresponding to the specified
index
. - See Also:
ParameterListDescriptor.getParamValueRange(java.lang.String)
,
ParameterListDescriptor.getEnumeratedParameterValues(java.lang.String)
,
ParameterListDescriptor.isParameterValueValid(java.lang.String, java.lang.Object)