Class ConvolveOp
- All Implemented Interfaces:
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.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intPixels at the edge of the source image are copied to the corresponding pixels in the destination without modification.static final intPixels at the edge of the destination image are set to zero. -
Constructor Summary
ConstructorsConstructorDescriptionConvolveOp(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). -
Method Summary
Modifier and TypeMethodDescriptioncreateCompatibleDestImage(BufferedImage src, ColorModel destCM) Creates a zeroed destination image with the correct size and number of bands.Creates a zeroed destination Raster with the correct size and number of bands, given this source.final BufferedImagefilter(BufferedImage src, BufferedImage dst) Performs a convolution on BufferedImages.final WritableRasterfilter(Raster src, WritableRaster dst) Performs a convolution on Rasters.final Rectangle2DgetBounds2D(BufferedImage src) Returns the bounding box of the filtered destination image.final Rectangle2DgetBounds2D(Raster src) Returns the bounding box of the filtered destination Raster.intReturns the edge condition.final KernelReturns the Kernel.final Point2DgetPoint2D(Point2D srcPt, Point2D dstPt) Returns the location of the destination point given a point in the source.final RenderingHintsReturns the rendering hints for this op.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Field Details
-
EDGE_ZERO_FILL
Pixels at the edge of the destination image are set to zero. This is the default.- See Also:
-
EDGE_NO_OP
Pixels at the edge of the source image are copied to the corresponding pixels in the destination without modification.- See Also:
-
-
Constructor Details
-
ConvolveOp
Constructs a ConvolveOp given a Kernel, an edge condition, and a RenderingHints object (which may be null).- Parameters:
kernel- the specifiedKerneledgeCondition- the specified edge conditionhints- the specifiedRenderingHintsobject- See Also:
-
ConvolveOp
Constructs a ConvolveOp given a Kernel. The edge condition will be EDGE_ZERO_FILL.- Parameters:
kernel- the specifiedKernel- See Also:
-
-
Method Details
-
getEdgeCondition
public int getEdgeCondition()Returns the edge condition.- Returns:
- the edge condition of this
ConvolveOp. - See Also:
-
getKernel
-
filter
Performs a convolution on BufferedImages. Each component of the source image will be convolved (including the alpha component, if present). If the color model in the source image is not the same as that in the destination image, the pixels will be converted in the destination. If the destination image is null, a BufferedImage will be created with the source ColorModel. The IllegalArgumentException may be thrown if the source is the same as the destination.- Specified by:
filterin interfaceBufferedImageOp- Parameters:
src- the sourceBufferedImageto filterdst- the destinationBufferedImagefor the filteredsrc- Returns:
- the filtered
BufferedImage - Throws:
NullPointerException- ifsrcisnullIllegalArgumentException- ifsrcequalsdstImagingOpException- ifsrccannot be filtered
-
filter
Performs a convolution on Rasters. Each band of the source Raster will be convolved. The source and destination must have the same number of bands. If the destination Raster is null, a new Raster will be created. The IllegalArgumentException may be thrown if the source is the same as the destination.- Specified by:
filterin interfaceRasterOp- Parameters:
src- the sourceRasterto filterdst- the destinationWritableRasterfor the filteredsrc- Returns:
- the filtered
WritableRaster - Throws:
NullPointerException- ifsrcisnullImagingOpException- ifsrcanddstdo not have the same number of bandsImagingOpException- ifsrccannot be filteredIllegalArgumentException- ifsrcequalsdst
-
createCompatibleDestImage
Creates a zeroed destination image with the correct size and number of bands. If destCM is null, an appropriate ColorModel will be used.- Specified by:
createCompatibleDestImagein interfaceBufferedImageOp- Parameters:
src- Source image for the filter operation.destCM- ColorModel of the destination. Can be null.- Returns:
- a destination
BufferedImagewith the correct size and number of bands.
-
createCompatibleDestRaster
Creates a zeroed destination Raster with the correct size and number of bands, given this source.- Specified by:
createCompatibleDestRasterin interfaceRasterOp- Parameters:
src- the sourceRaster- Returns:
- a
WritableRasterthat is compatible withsrc
-
getBounds2D
Returns the bounding box of the filtered destination image. Since this is not a geometric operation, the bounding box does not change.- Specified by:
getBounds2Din interfaceBufferedImageOp- Parameters:
src- TheBufferedImageto be filtered- Returns:
- The
Rectangle2Drepresenting the destination image's bounding box.
-
getBounds2D
Returns the bounding box of the filtered destination Raster. Since this is not a geometric operation, the bounding box does not change.- Specified by:
getBounds2Din interfaceRasterOp- Parameters:
src- the sourceRaster- Returns:
- a
Rectangle2Dthat is the bounding box of theRasterresulting from the filtering operation.
-
getPoint2D
Returns the location of the destination point given a point in the source. If dstPt is non-null, it will be used to hold the return value. Since this is not a geometric operation, the srcPt will equal the dstPt.- Specified by:
getPoint2Din interfaceBufferedImageOp- Specified by:
getPoint2Din interfaceRasterOp- Parameters:
srcPt- thePoint2Dthat represents the point in the source imagedstPt- ThePoint2Din which to store the result- Returns:
- The
Point2Din the destination image that corresponds to the specified point in the source image.
-
getRenderingHints
Returns the rendering hints for this op.- Specified by:
getRenderingHintsin interfaceBufferedImageOp- Specified by:
getRenderingHintsin interfaceRasterOp- Returns:
- The
RenderingHintsobject for thisBufferedImageOp. Returns null if no hints have been set.
-