javax.media.jai.operator
Class MultiplyComplexDescriptor
java.lang.Object
|
+--javax.media.jai.OperationDescriptorImpl
|
+--javax.media.jai.operator.MultiplyComplexDescriptor
- All Implemented Interfaces:
- OperationDescriptor, RegistryElementDescriptor, Serializable
- public class MultiplyComplexDescriptor
- extends OperationDescriptorImpl
An OperationDescriptor
describing the "MultiplyComplex"
operation.
The "MultiplyComplex" operation multiplies two images representing
complex data. The source images must each contain an even number of bands
with the even-indexed bands (0, 2, ...) representing the real and the
odd-indexed bands (1, 3, ...) the imaginary parts of each pixel. The
destination image similarly contains an even number of bands with the
same interpretation and with contents defined by:
a = src0[x][y][2*k];
b = src0[x][y][2*k+1];
c = src1[x][y][2*k];
d = src1[x][y][2*k+1];
dst[x][y][2*k] = a*c - b*d;
dst[x][y][2*k+1] = a*d + b*c;
where 0 <= k < numBands/2.
By default, the number of bands of the destination image is the
the minimum of the number of bands of the two sources, and the
data type is the biggest data type of the sources.
However, the number of destination bands can be specified to be
M = 2*L through an ImageLayout
hint, when
one source image has 2 bands and the other has N = 2*K bands
where K > 1, with a natural restriction 1 <= L <= K.
In such a special case each of the first L complex components
in the N-band source will be multiplied by the single complex
component in the 1-band source.
If the result of the operation underflows/overflows the
minimum/maximum value supported by the destination data type, then it will
be clamped to the minimum/maximum value respectively.
"MultiplyComplex" defines a PropertyGenerator that sets the "COMPLEX"
property of the image to java.lang.Boolean.TRUE
, which may
be retrieved by calling the getProperty()
method with
"COMPLEX" as the property name.
Resource List
Name | Value |
GlobalName | MultiplyComplex |
LocalName | MultiplyComplex |
Vendor | com.sun.media.jai |
Description | Computes the complex product of two images. |
DocURL | http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/operator/MultiplyComplexDescriptor.html |
Version | 1.0 |
No parameters are needed for the "MultiplyComplex" operation.
- See Also:
OperationDescriptor
, Serialized Form
Methods inherited from class javax.media.jai.OperationDescriptorImpl |
arePropertiesSupported,
getDefaultSourceClass,
getDestClass,
getDestClass,
getInvalidRegion,
getName,
getNumParameters,
getNumSources,
getParamClasses,
getParamDefaults,
getParamDefaultValue,
getParameterListDescriptor,
getParamMaxValue,
getParamMinValue,
getParamNames,
getPropertyGenerators,
getRenderableDestClass,
getRenderableSourceClasses,
getResourceBundle,
getResources,
getSourceClasses,
getSourceClasses,
getSourceNames,
getSupportedModes,
isImmediate,
isModeSupported,
isRenderableSupported,
isRenderedSupported,
makeDefaultSourceClassList,
validateArguments,
validateArguments,
validateParameters,
validateParameters,
validateRenderableArguments,
validateRenderableSources,
validateSources |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
MultiplyComplexDescriptor
public MultiplyComplexDescriptor()
- Constructor.
validateSources
protected boolean validateSources(String modeName,
ParameterBlock args,
StringBuffer msg)
- Validates the input sources.
In addition to the standard checks performed by the
superclass method, this method checks that the source images
each have an even number of bands.
- Overrides:
- validateSources in class OperationDescriptorImpl
- Tags copied from class: OperationDescriptorImpl
- Parameters:
modeName
- the operation mode nameargs
- a ParameterBlock
that has the sourcesmsg
- A string that may contain error messages.- Throws:
- IllegalArgumentException - if any of the input parameters are
null
. - See Also:
OperationDescriptorImpl.validateArguments(java.lang.String, java.awt.image.renderable.ParameterBlock, java.lang.StringBuffer)
getPropertyGenerators
public PropertyGenerator[] getPropertyGenerators(String modeName)
- Returns an array of
PropertyGenerators
implementing
property inheritance for the "MultiplyComplex" operation.
- Overrides:
- getPropertyGenerators in class OperationDescriptorImpl
- Returns:
- An array of property generators.