| java.lang.Object javax.media.jai.OperationDescriptorImpl javax.media.jai.operator.CompositeDescriptor
CompositeDescriptor | public class CompositeDescriptor extends OperationDescriptorImpl (Code) | | An OperationDescriptor describing the "Composite" operation.
The "Composite" operation combines two images based on their alpha
values at each pixel. It is done on a per-band basis, and the two source
images are expected to have the same number of bands and the same data
type. The destination image has the same data type as the two sources.
The destAlpha parameter indicates if the destination
image should have an extra alpha channel. If this parameter is set to
NO_DESTINATION_ALPHA , then the destination image does not
include an alpha band, and it should have the same number of bands as
the two source images. If it is set to DESTINATION_ALPHA_FIRST ,
then the destination image has one extra band than the source images,
which represents the result alpha channel, and this band is the first
band (band 0) of the destination. If it is set to
DESTINATION_ALPHA_LAST , then the destination image also
has the extra alpha channel, but this band is the last band of the
destination.
The destination pixel values may be viewed as representing a fractional
pixel coverage or transparency factor. Specifically, Composite implements
the Porter-Duff "over" rule (see Computer Graphics, July 1984 pp.
253-259), in which the output color of a pixel with source value/alpha
tuples (A, a) and (B, b) is given by
a*A + (1 - a)*(b*B) . The output alpha value is given
by a + (1 - a)*b . For premultiplied sources tuples
(a*A, a) and (b*B, b) , the premultiplied output
value is simply (a*A) + (1 - a)*(b*B) .
The color channels of the two source images are supplied via
source1 and source2 . The two sources must
be either both pre-multiplied by alpha or not. Alpha channel should
not be included in source1 and source2 .
The alpha channel of the first source images must be supplied
via the source1Alpha parameter. This parameter may not
be null. The alpha channel of the second source image may be supplied
via the source2Alpha parameter. This parameter may be
null, in which case the second source is considered completely opaque.
The alpha images should be single-banded, and have the same data type
as well as dimensions as their corresponding source images.
The alphaPremultiplied parameter indicates whether
or not the supplied alpha image is premultiplied to both the source
images. It also indicates whether the destination image color channels
have the alpha values multiplied to the pixel color values.
It should be noted that the source1Alpha and
source1Alpha parameters are RenderedImage s in
the "rendered" mode and are RenderableImage s in the
"renderable" mode.
The destination image is the combination of the two source images.
It has the color channels, and if specified, one additional alpha channel
(the band index depends on the value of the destAlpha
parameter). Whether alpha value is pre-multiplied to the color channels
also depend on the value of alphaPremultiplied (pre-multiplied
if true).
Resource List
Name | Value |
GlobalName | composite |
LocallName | composite |
Vendor | com.sun.media.jai |
Description | Composites two images based on an alpha mask. |
DocURL | http://java.sun.com/products/java-media/jai/forDevelopers/jaiapi/javax.media.jai.operator.CompositeDescriptor.html |
Version | 1.0 |
arg0Desc | The alpha image for the first source. |
arg1Desc | The alpha image for the second source. |
arg2Desc | True if alpha has been premultiplied to both
sources and the destination. |
arg3Desc | Indicates if the destination image should
include an extra alpha channel, and if so,
should it be the first or last band. |
Parameter List
Name |
Class Type |
Default Value |
source1Alpha |
Rendered mode |
java.awt.image.RenderedImage |
NO_PARAMETER_DEFAULT |
Renderable mode |
java.awt.image.renderable.RenderableImage |
source2Alpha |
Rendered mode |
java.awt.image.RenderedImage |
null |
Renderable mode |
java.awt.image.renderable.RenderableImage |
alphaPremultiplied |
java.lang.Boolean |
false |
destAlpha |
javax.media.jai.operator.CompositeDestAlpha |
NO_DESTINATION_ALPHA |
See Also: CompositeDestAlpha See Also: java.awt.image.ColorModel See Also: javax.media.jai.OperationDescriptor |
Method Summary | |
public static RenderedOp | create(RenderedImage source0, RenderedImage source1, RenderedImage source1Alpha, RenderedImage source2Alpha, Boolean alphaPremultiplied, CompositeDestAlpha destAlpha, RenderingHints hints) Composites two images based on an alpha mask.
Creates a ParameterBlockJAI from all
supplied arguments except hints and invokes
JAI.create(StringParameterBlockRenderingHints) .
See Also: JAI See Also: ParameterBlockJAI See Also: RenderedOp Parameters: source0 - RenderedImage source 0. Parameters: source1 - RenderedImage source 1. Parameters: source1Alpha - The alpha image for the first source. Parameters: source2Alpha - The alpha image for the second source.May be null . Parameters: alphaPremultiplied - True if alpha has been premultiplied to both sources and the destination.May be null . Parameters: destAlpha - Indicates if the destination image should include an extra alpha channel, and if so, should it be the first or last band.May be null . Parameters: hints - The RenderingHints to use.May be null . | public static RenderableOp | createRenderable(RenderableImage source0, RenderableImage source1, RenderableImage source1Alpha, RenderableImage source2Alpha, Boolean alphaPremultiplied, CompositeDestAlpha destAlpha, RenderingHints hints) Composites two images based on an alpha mask.
Creates a ParameterBlockJAI from all
supplied arguments except hints and invokes
JAI.createRenderable(StringParameterBlockRenderingHints) .
See Also: JAI See Also: ParameterBlockJAI See Also: RenderableOp Parameters: source0 - RenderableImage source 0. Parameters: source1 - RenderableImage source 1. Parameters: source1Alpha - The alpha image for the first source. Parameters: source2Alpha - The alpha image for the second source.May be null . Parameters: alphaPremultiplied - True if alpha has been premultiplied to both sources and the destination.May be null . Parameters: destAlpha - Indicates if the destination image should include an extra alpha channel, and if so, should it be the first or last band.May be null . Parameters: hints - The RenderingHints to use.May be null . | public boolean | validateArguments(String modeName, ParameterBlock args, StringBuffer msg) Validates the input sources and parameters. |
DESTINATION_ALPHA_FIRST | final public static CompositeDestAlpha DESTINATION_ALPHA_FIRST(Code) | | The destination image has the channel, and it is the first band.
|
DESTINATION_ALPHA_LAST | final public static CompositeDestAlpha DESTINATION_ALPHA_LAST(Code) | | The destination image has the channel, and it is the last band.
|
NO_DESTINATION_ALPHA | final public static CompositeDestAlpha NO_DESTINATION_ALPHA(Code) | | The destination image does not have the alpha channel.
|
resources | final protected static String[][] resources(Code) | | The resource strings that provide the general documentation
and specify the parameter list for this operation.
|
CompositeDescriptor | public CompositeDescriptor()(Code) | | Constructor.
|
create | public static RenderedOp create(RenderedImage source0, RenderedImage source1, RenderedImage source1Alpha, RenderedImage source2Alpha, Boolean alphaPremultiplied, CompositeDestAlpha destAlpha, RenderingHints hints)(Code) | | Composites two images based on an alpha mask.
Creates a ParameterBlockJAI from all
supplied arguments except hints and invokes
JAI.create(StringParameterBlockRenderingHints) .
See Also: JAI See Also: ParameterBlockJAI See Also: RenderedOp Parameters: source0 - RenderedImage source 0. Parameters: source1 - RenderedImage source 1. Parameters: source1Alpha - The alpha image for the first source. Parameters: source2Alpha - The alpha image for the second source.May be null . Parameters: alphaPremultiplied - True if alpha has been premultiplied to both sources and the destination.May be null . Parameters: destAlpha - Indicates if the destination image should include an extra alpha channel, and if so, should it be the first or last band.May be null . Parameters: hints - The RenderingHints to use.May be null . The RenderedOp destination. throws: IllegalArgumentException - if source0 is null . throws: IllegalArgumentException - if source1 is null . throws: IllegalArgumentException - if source1Alpha is null . |
createRenderable | public static RenderableOp createRenderable(RenderableImage source0, RenderableImage source1, RenderableImage source1Alpha, RenderableImage source2Alpha, Boolean alphaPremultiplied, CompositeDestAlpha destAlpha, RenderingHints hints)(Code) | | Composites two images based on an alpha mask.
Creates a ParameterBlockJAI from all
supplied arguments except hints and invokes
JAI.createRenderable(StringParameterBlockRenderingHints) .
See Also: JAI See Also: ParameterBlockJAI See Also: RenderableOp Parameters: source0 - RenderableImage source 0. Parameters: source1 - RenderableImage source 1. Parameters: source1Alpha - The alpha image for the first source. Parameters: source2Alpha - The alpha image for the second source.May be null . Parameters: alphaPremultiplied - True if alpha has been premultiplied to both sources and the destination.May be null . Parameters: destAlpha - Indicates if the destination image should include an extra alpha channel, and if so, should it be the first or last band.May be null . Parameters: hints - The RenderingHints to use.May be null . The RenderableOp destination. throws: IllegalArgumentException - if source0 is null . throws: IllegalArgumentException - if source1 is null . throws: IllegalArgumentException - if source1Alpha is null . |
validateArguments | public boolean validateArguments(String modeName, ParameterBlock args, StringBuffer msg)(Code) | | Validates the input sources and parameters.
In addition to the standard checks performed by the
superclass method, this method checks that the source image
samplemodel s have the same number of bands and
transfer type, and that the alpha images have the same bounds
as the corresponding sources and the correct transfer type.
|
Methods inherited from javax.media.jai.OperationDescriptorImpl | public boolean arePropertiesSupported()(Code)(Java Doc) protected static Class getDefaultSourceClass(String modeName)(Code)(Java Doc) public Class getDestClass(String modeName)(Code)(Java Doc) public Class getDestClass()(Code)(Java Doc) public Object getInvalidRegion(String modeName, ParameterBlock oldParamBlock, RenderingHints oldHints, ParameterBlock newParamBlock, RenderingHints newHints, OperationNode node)(Code)(Java Doc) public String getName()(Code)(Java Doc) public int getNumParameters()(Code)(Java Doc) public int getNumSources()(Code)(Java Doc) public Class[] getParamClasses()(Code)(Java Doc) public Object getParamDefaultValue(int index)(Code)(Java Doc) public Object[] getParamDefaults()(Code)(Java Doc) public Number getParamMaxValue(int index)(Code)(Java Doc) public Number getParamMinValue(int index)(Code)(Java Doc) public String[] getParamNames()(Code)(Java Doc) public ParameterListDescriptor getParameterListDescriptor(String modeName)(Code)(Java Doc) public PropertyGenerator[] getPropertyGenerators(String modeName)(Code)(Java Doc) public PropertyGenerator[] getPropertyGenerators()(Code)(Java Doc) public Class getRenderableDestClass()(Code)(Java Doc) public Class[] getRenderableSourceClasses()(Code)(Java Doc) public ResourceBundle getResourceBundle(Locale locale)(Code)(Java Doc) public String[][] getResources(Locale locale)(Code)(Java Doc) public Class[] getSourceClasses(String modeName)(Code)(Java Doc) public Class[] getSourceClasses()(Code)(Java Doc) public String[] getSourceNames()(Code)(Java Doc) public String[] getSupportedModes()(Code)(Java Doc) public boolean isImmediate()(Code)(Java Doc) public boolean isModeSupported(String modeName)(Code)(Java Doc) public boolean isRenderableSupported()(Code)(Java Doc) public boolean isRenderedSupported()(Code)(Java Doc) protected static Class[][] makeDefaultSourceClassList(String[] supportedModes, int numSources)(Code)(Java Doc) public boolean validateArguments(String modeName, ParameterBlock args, StringBuffer msg)(Code)(Java Doc) public boolean validateArguments(ParameterBlock args, StringBuffer msg)(Code)(Java Doc) protected boolean validateParameters(String modeName, ParameterBlock args, StringBuffer msg)(Code)(Java Doc) protected boolean validateParameters(ParameterBlock args, StringBuffer msg)(Code)(Java Doc) public boolean validateRenderableArguments(ParameterBlock args, StringBuffer msg)(Code)(Java Doc) protected boolean validateRenderableSources(ParameterBlock args, StringBuffer msg)(Code)(Java Doc) protected boolean validateSources(String modeName, ParameterBlock args, StringBuffer msg)(Code)(Java Doc) protected boolean validateSources(ParameterBlock args, StringBuffer msg)(Code)(Java Doc)
|
|
|