public class ConvolveOp extends Object implements BufferedImageOp, RasterOp
This class operates with BufferedImage data in which color components are premultiplied with the alpha component. If the Source BufferedImage has an alpha component, and the color components are not premultiplied with the alpha component, then the data are premultiplied before being convolved. If the Destination has color components which are not premultiplied, then alpha is divided out before storing into the Destination (if alpha is 0, the color components are set to 0). If the Destination has no alpha component, then the resulting alpha is discarded after first dividing it out of the color components.
Rasters are treated as having no alpha channel. If the above treatment of the alpha channel in BufferedImages is not desired, it may be avoided by getting the Raster of a source BufferedImage and using the filter method of this class which works with Rasters.
If a RenderingHints object is specified in the constructor, the color rendering hint and the dithering hint may be used when color conversion is required.
Note that the Source and the Destination may not be the same object.
Modifier and Type | Field and Description |
---|---|
static int |
EDGE_NO_OP
Pixels at the edge of the source image are copied to
the corresponding pixels in the destination without modification.
|
static int |
EDGE_ZERO_FILL
Pixels at the edge of the destination image are set to zero.
|
Constructor and Description |
---|
ConvolveOp(Kernel kernel)
Constructs a ConvolveOp given a Kernel.
|
ConvolveOp(Kernel kernel,
int edgeCondition,
RenderingHints hints)
Constructs a ConvolveOp given a Kernel, an edge condition, and a
RenderingHints object (which may be null).
|
Modifier and Type | Method and Description |
---|---|
BufferedImage |
createCompatibleDestImage(BufferedImage src,
ColorModel destCM)
Creates a zeroed destination image with the correct size and number
of bands.
|
WritableRaster |
createCompatibleDestRaster(Raster src)
Creates a zeroed destination Raster with the correct size and number
of bands, given this source.
|
BufferedImage |
filter(BufferedImage src,
BufferedImage dst)
Performs a convolution on BufferedImages.
|
WritableRaster |
filter(Raster src,
WritableRaster dst)
Performs a convolution on Rasters.
|
Rectangle2D |
getBounds2D(BufferedImage src)
Returns the bounding box of the filtered destination image.
|
Rectangle2D |
getBounds2D(Raster src)
Returns the bounding box of the filtered destination Raster.
|
int |
getEdgeCondition()
Returns the edge condition.
|
Kernel |
getKernel()
Returns the Kernel.
|
Point2D |
getPoint2D(Point2D srcPt,
Point2D dstPt)
Returns the location of the destination point given a
point in the source.
|
RenderingHints |
getRenderingHints()
Returns the rendering hints for this op.
|
@Native public static final int EDGE_ZERO_FILL
@Native public static final int EDGE_NO_OP
public ConvolveOp(Kernel kernel, int edgeCondition, RenderingHints hints)
kernel
- the specified Kernel
edgeCondition
- the specified edge conditionhints
- the specified RenderingHints
objectKernel
,
EDGE_NO_OP
,
EDGE_ZERO_FILL
,
RenderingHints
public ConvolveOp(Kernel kernel)
kernel
- the specified Kernel
Kernel
,
EDGE_ZERO_FILL
public int getEdgeCondition()
ConvolveOp
.EDGE_NO_OP
,
EDGE_ZERO_FILL
public final Kernel getKernel()
Kernel
of this ConvolveOp
.public final BufferedImage filter(BufferedImage src, BufferedImage dst)
filter
in interface BufferedImageOp
src
- the source BufferedImage
to filterdst
- the destination BufferedImage
for the
filtered src
BufferedImage
NullPointerException
- if src
is null
IllegalArgumentException
- if src
equals
dst
ImagingOpException
- if src
cannot be filteredpublic final WritableRaster filter(Raster src, WritableRaster dst)
filter
in interface RasterOp
src
- the source Raster
to filterdst
- the destination WritableRaster
for the
filtered src
WritableRaster
NullPointerException
- if src
is null
ImagingOpException
- if src
and dst
do not have the same number of bandsImagingOpException
- if src
cannot be filteredIllegalArgumentException
- if src
equals
dst
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
createCompatibleDestImage
in interface BufferedImageOp
src
- Source image for the filter operation.destCM
- ColorModel of the destination. Can be null.BufferedImage
with the correct
size and number of bands.public WritableRaster createCompatibleDestRaster(Raster src)
createCompatibleDestRaster
in interface RasterOp
src
- the source Raster
WritableRaster
that is compatible with
src
public final Rectangle2D getBounds2D(BufferedImage src)
getBounds2D
in interface BufferedImageOp
src
- The BufferedImage
to be filteredRectangle2D
representing the destination
image's bounding box.public final Rectangle2D getBounds2D(Raster src)
getBounds2D
in interface RasterOp
src
- the source Raster
Rectangle2D
that is the bounding box of
the Raster
resulting from the filtering
operation.public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
getPoint2D
in interface BufferedImageOp
getPoint2D
in interface RasterOp
srcPt
- the Point2D
that represents the point in
the source imagedstPt
- The Point2D
in which to store the resultPoint2D
in the destination image that
corresponds to the specified point in the source image.public final RenderingHints getRenderingHints()
getRenderingHints
in interface BufferedImageOp
getRenderingHints
in interface RasterOp
RenderingHints
object for this
BufferedImageOp
. Returns
null if no hints have been set. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.