java.lang.Object
java.awt.image.ConvolveOp
- 所有已实现的接口:
-
BufferedImageOp,RasterOp
该类实现了从源到目标的卷积。使用卷积核进行卷积是一种空间操作,通过将卷积核与输入像素的周围相乘来计算输出像素。这使得输出像素受到周围像素的影响,这种影响可以用卷积核在数学上指定的方式来描述。
该类使用颜色分量与alpha分量预乘的BufferedImage数据。如果源BufferedImage具有alpha分量,并且颜色分量未与alpha分量预乘,则在进行卷积之前会进行预乘。如果目标具有未预乘的颜色分量,则在存储到目标之前会除去alpha(如果alpha为0,则颜色分量设置为0)。如果目标没有alpha分量,则首先除去颜色分量,然后丢弃生成的alpha。
光栅被视为没有alpha通道。如果不希望对BufferedImage中的alpha通道进行上述处理,则可以通过获取源BufferedImage的光栅并使用此类的filter方法来避免,该方法适用于光栅。
如果在构造函数中指定了RenderingHints对象,则在需要颜色转换时可能会使用颜色渲染提示和抖动提示。
请注意,源和目标可能不是同一个对象。
- 参见:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int源图像边缘的像素将被复制到目标中相应的像素,而不进行修改。static final int目标图像边缘的像素将被设置为零。 -
Constructor Summary
ConstructorsConstructorDescriptionConvolveOp(Kernel kernel) 给定一个卷积核构造一个ConvolveOp。ConvolveOp(Kernel kernel, int edgeCondition, RenderingHints hints) 给定一个卷积核、一个边缘条件和一个RenderingHints对象(可以为null)构造一个ConvolveOp。 -
Method Summary
Modifier and TypeMethodDescriptioncreateCompatibleDestImage(BufferedImage src, ColorModel destCM) 创建一个正确大小和波段数的零目标图像。给定此源,创建一个正确大小和波段数的零目标光栅。final BufferedImagefilter(BufferedImage src, BufferedImage dst) 在BufferedImages上执行卷积。final WritableRasterfilter(Raster src, WritableRaster dst) 在Rasters上执行卷积。final Rectangle2DgetBounds2D(BufferedImage src) 返回过滤后目标图像的边界框。final Rectangle2DgetBounds2D(Raster src) 返回过滤后目标光栅的边界框。int返回边缘条件。final Kernel返回卷积核。final Point2DgetPoint2D(Point2D srcPt, Point2D dstPt) 给定源中的点,返回目标点的位置。final RenderingHints返回此操作的渲染提示。
-
Field Details
-
EDGE_ZERO_FILL
目标图像边缘的像素将被设置为零。这是默认设置。- 参见:
-
EDGE_NO_OP
源图像边缘的像素将被复制到目标中相应的像素,而不进行修改。- 参见:
-
-
Constructor Details
-
ConvolveOp
给定一个卷积核、一个边缘条件和一个RenderingHints对象(可以为null)构造一个ConvolveOp。- 参数:
-
kernel- 指定的Kernel -
edgeCondition- 指定的边缘条件 -
hints- 指定的RenderingHints对象 - 参见:
-
ConvolveOp
给定一个卷积核构造一个ConvolveOp。边缘条件将为EDGE_ZERO_FILL。- 参数:
-
kernel- 指定的Kernel - 参见:
-
-
Method Details
-
getEdgeCondition
public int getEdgeCondition()返回边缘条件。- 返回:
-
此
ConvolveOp的边缘条件。 - 参见:
-
getKernel
返回卷积核。- 返回:
-
此
ConvolveOp的Kernel。
-
filter
在BufferedImages上执行卷积。源图像的每个分量都将被卷积(包括alpha分量,如果存在)。如果源图像中的颜色模型与目标图像中的颜色模型不同,则目标中的像素将被转换。如果目标图像为null,则将使用源ColorModel创建一个BufferedImage。如果源与目标相同,可能会抛出IllegalArgumentException。- 指定者:
-
filter在接口BufferedImageOp中 - 参数:
-
src- 要过滤的源BufferedImage -
dst- 过滤后的src的目标BufferedImage - 返回:
-
过滤后的
BufferedImage - 抛出:
-
NullPointerException- 如果src为null -
IllegalArgumentException- 如果src等于dst -
ImagingOpException- 如果无法过滤src
-
filter
在Rasters上执行卷积。源光栅的每个波段都将被卷积。源和目标必须具有相同数量的波段。如果目标光栅为null,则将创建一个新的光栅。如果源与目标相同,可能会抛出IllegalArgumentException。- 指定者:
-
filter在接口RasterOp中 - 参数:
-
src- 要过滤的源Raster -
dst- 过滤后的src的目标WritableRaster - 返回:
-
过滤后的
WritableRaster - 抛出:
-
NullPointerException- 如果src为null -
ImagingOpException- 如果src和dst的波段数不同 -
ImagingOpException- 如果无法过滤src -
IllegalArgumentException- 如果src等于dst
-
createCompatibleDestImage
创建一个正确大小和波段数的零目标图像。如果destCM为null,则将使用适当的ColorModel。- 指定者:
-
createCompatibleDestImage在接口BufferedImageOp中 - 参数:
-
src- 过滤操作的源图像。 -
destCM- 目标的ColorModel。可以为null。 - 返回:
-
一个具有正确大小和波段数的目标
BufferedImage。
-
createCompatibleDestRaster
给定此源,创建一个正确大小和波段数的零目标光栅。- 指定者:
-
createCompatibleDestRaster在接口RasterOp中 - 参数:
-
src- 源Raster - 返回:
-
与
src兼容的WritableRaster
-
getBounds2D
返回过滤后目标图像的边界框。由于这不是几何操作,边界框不会改变。- 指定者:
-
getBounds2D在接口BufferedImageOp中 - 参数:
-
src- 要过滤的BufferedImage - 返回:
-
表示目标图像边界框的
Rectangle2D。
-
getBounds2D
返回过滤后目标光栅的边界框。由于这不是几何操作,边界框不会改变。- 指定者:
-
getBounds2D在接口RasterOp - 参数:
-
src- 源Raster - 返回值:
-
一个
Rectangle2D,表示滤波操作结果的Raster的边界框。
-
getPoint2D
返回给定源点的目标点位置。如果dstPt非空,则将用它来保存返回值。由于这不是几何操作,srcPt将等于dstPt。- 指定者:
-
getPoint2D在接口BufferedImageOp - 指定者:
-
getPoint2D在接口RasterOp - 参数:
-
srcPt- 表示源图像中的点的Point2D -
dstPt- 用于存储结果的Point2D - 返回值:
-
目标图像中与源图像中指定点对应的
Point2D。
-
getRenderingHints
返回此操作的渲染提示。- 指定者:
-
getRenderingHints在接口BufferedImageOp - 指定者:
-
getRenderingHints在接口RasterOp - 返回值:
-
此
BufferedImageOp的RenderingHints对象。如果未设置任何提示,则返回null。
-