javax.media.jai.operator
Class WarpDescriptor

java.lang.Object
  extended byjavax.media.jai.OperationDescriptorImpl
      extended byjavax.media.jai.operator.WarpDescriptor
All Implemented Interfaces:
OperationDescriptor, RegistryElementDescriptor, Serializable

public class WarpDescriptor
extends OperationDescriptorImpl

An OperationDescriptor describing the "Warp" operation.

The "Warp" operation performs (possibly filtered) general warping on an image.

The destination bounds may be specified by an ImageLayout hint provided via a RenderingHints supplied to the operation. If no bounds are so specified, then the destination bounds will be set to the minimum bounding rectangle of the forward mapped source bounds calculated using Warp.mapSourceRect(Rectangle) or, failing that, Warp.mapSourcePoint(Point2D) applied to the vertices of the source bounds. If forward mapping by both methods is not viable, then an approximate affine mapping will be created and used to determine the destination bounds by forward mapping the source bounds. If this approach also fails, then the destination bounds will be set to the source bounds.

"Warp" defines a PropertyGenerator that performs an identical transformation on the "ROI" property of the source image, which can be retrieved by calling the getProperty method with "ROI" as the property name.

The parameter, "backgroundValues", is defined to fill the background with the user-specified background values. These background values will be translated into background colors by the ColorModel when the image is displayed. With the default value, {0.0}, of this parameter, the background pixels are filled with 0s. If the provided array length is smaller than the number of bands, the first element of the provided array is used for all the bands. If the provided values are out of the data range of the destination image, they will be clamped into the proper range.

It should be noted that this operation automatically adds a value of Boolean.TRUE for the JAI.KEY_REPLACE_INDEX_COLOR_MODEL to the given configuration so that the operation is performed on the pixel values instead of being performed on the indices into the color map if the source(s) have an IndexColorModel. This addition will take place only if a value for the JAI.KEY_REPLACE_INDEX_COLOR_MODEL has not already been provided by the user. Note that the configuration Map is cloned before the new hint is added to it. The operation can be smart about the value of the JAI.KEY_REPLACE_INDEX_COLOR_MODEL RenderingHints, i.e. while the default value for the JAI.KEY_REPLACE_INDEX_COLOR_MODEL is Boolean.TRUE, in some cases the operator could set the default.

Resource List
Name Value
GlobalName Warp
LocalName Warp
Vendor com.sun.media.jai
Description Warps an image according to a specified Warp object.
DocURL http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/operator/WarpDescriptor.html
Version 1.0
arg0Desc The Warp object.
arg1Desc The interpolation method.

Parameter List
Name Class Type Default Value
warp javax.media.jai.Warp NO_PARAMETER_DEFAULT
interpolation javax.media.jai.Interpolation InterpolationNearest
backgroundValues double[] {0.0}

See Also:
Interpolation, Warp, OperationDescriptor, Serialized Form

Field Summary
 
Fields inherited from class javax.media.jai.OperationDescriptorImpl
sourceNames, supportedModes
 
Fields inherited from interface javax.media.jai.OperationDescriptor
NO_PARAMETER_DEFAULT
 
Constructor Summary
WarpDescriptor()
          Constructor.
 
Method Summary
static RenderedOp create(RenderedImage source0, Warp warp, Interpolation interpolation, double[] backgroundValues, RenderingHints hints)
          Warps an image according to a specified Warp object.
 PropertyGenerator[] getPropertyGenerators()
          Returns an array of PropertyGenerators implementing property inheritance for the "Warp" operation.
 
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, validateSources
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WarpDescriptor

public WarpDescriptor()
Constructor.

Method Detail

getPropertyGenerators

public PropertyGenerator[] getPropertyGenerators()
Returns an array of PropertyGenerators implementing property inheritance for the "Warp" operation.

Specified by:
getPropertyGenerators in interface OperationDescriptor
Overrides:
getPropertyGenerators in class OperationDescriptorImpl
Returns:
An array of property generators.
See Also:
OperationDescriptorImpl.getPropertyGenerators(java.lang.String)

create

public static RenderedOp create(RenderedImage source0,
                                Warp warp,
                                Interpolation interpolation,
                                double[] backgroundValues,
                                RenderingHints hints)
Warps an image according to a specified Warp object.

Creates a ParameterBlockJAI from all supplied arguments except hints and invokes JAI.create(String,ParameterBlock,RenderingHints).

Parameters:
source0 - RenderedImage source 0.
warp - The warp object.
interpolation - The interpolation method. May be null.
backgroundValues - The user-specified background values. May be null.
hints - The RenderingHints to use. May be null.
Returns:
The RenderedOp destination.
Throws:
IllegalArgumentException - if source0 is null.
IllegalArgumentException - if warp is null.
See Also:
JAI, ParameterBlockJAI, RenderedOp