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
Modifier and TypeFieldDescriptionstatic final int
源图像边缘的像素将被复制到目标中相应的像素,而不进行修改。static final int
目标图像边缘的像素将被设置为零。 -
Constructor Summary
ConstructorDescriptionConvolveOp
(Kernel kernel) 给定一个卷积核构造一个ConvolveOp。ConvolveOp
(Kernel kernel, int edgeCondition, RenderingHints hints) 给定一个卷积核、一个边缘条件和一个RenderingHints对象(可以为null)构造一个ConvolveOp。 -
Method Summary
Modifier and TypeMethodDescriptioncreateCompatibleDestImage
(BufferedImage src, ColorModel destCM) 创建一个正确大小和波段数的零目标图像。给定此源,创建一个正确大小和波段数的零目标光栅。final BufferedImage
filter
(BufferedImage src, BufferedImage dst) 在BufferedImages上执行卷积。final WritableRaster
filter
(Raster src, WritableRaster dst) 在Rasters上执行卷积。final Rectangle2D
getBounds2D
(BufferedImage src) 返回过滤后目标图像的边界框。final Rectangle2D
getBounds2D
(Raster src) 返回过滤后目标光栅的边界框。int
返回边缘条件。final Kernel
返回卷积核。final Point2D
getPoint2D
(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。
-