- java.lang.Object
-
- java.awt.image.ConvolveOp
-
- 实现的所有接口
-
BufferedImageOp
,RasterOp
public class ConvolveOp extends Object implements BufferedImageOp, RasterOp
此类实现从源到目标的卷积。 使用卷积核的卷积是一种空间操作,通过将内核与输入像素的环绕相乘来计算输入像素的输出像素。 这允许输出像素以可以用内核数学指定的方式受到直接邻域的影响。此类使用BufferedImage数据进行操作,其中颜色分量与alpha分量预乘。 如果Source BufferedImage具有alpha分量,并且颜色分量未与alpha分量预乘,则数据在进行卷积之前进行预乘。 如果Destination具有未预乘的颜色分量,则在存储到Destination之前将alpha分割出来(如果alpha为0,则颜色分量设置为0)。 如果Destination没有alpha分量,则在首先将颜色分量分开后,将丢弃生成的alpha。
栅格被视为没有alpha通道。 如果不希望对BufferedImages中的alpha通道进行上述处理,可以通过获取源BufferedImage的Raster并使用与Rasters一起使用的此类的过滤器方法来避免。
如果在构造函数中指定了RenderingHints对象,则在需要颜色转换时可以使用颜色呈现提示和抖动提示。
请注意,Source和Destination可能不是同一个对象。
-
-
字段汇总
字段 变量和类型 字段 描述 static int
EDGE_NO_OP
源图像边缘的像素被复制到目的地中的相应像素而不进行修改。static int
EDGE_ZERO_FILL
目标图像边缘的像素设置为零。
-
构造方法摘要
构造方法 构造器 描述 ConvolveOp(Kernel kernel)
给出一个内核构造一个ConvolveOp。ConvolveOp(Kernel kernel, int edgeCondition, RenderingHints hints)
给定一个内核,一个边条件和一个RenderingHints对象(可能为null)构造一个ConvolveOp。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 BufferedImage
createCompatibleDestImage(BufferedImage src, ColorModel destCM)
创建具有正确大小和波段数的归零目标图像。WritableRaster
createCompatibleDestRaster(Raster src)
在给定此源的情况下,创建具有正确大小和波段数的归零目标Raster。BufferedImage
filter(BufferedImage src, BufferedImage dst)
在BufferedImages上执行卷积。WritableRaster
filter(Raster src, WritableRaster dst)
对Rasters执行卷积。Rectangle2D
getBounds2D(BufferedImage src)
返回已过滤目标图像的边界框。Rectangle2D
getBounds2D(Raster src)
返回已过滤目标Raster的边界框。int
getEdgeCondition()
返回边缘条件。Kernel
getKernel()
返回内核。Point2D
getPoint2D(Point2D srcPt, Point2D dstPt)
返回给定源中某个点的目标点的位置。RenderingHints
getRenderingHints()
返回此op的呈现提示。
-
-
-
构造方法详细信息
-
ConvolveOp
public ConvolveOp(Kernel kernel, int edgeCondition, RenderingHints hints)
给定一个内核,一个边条件和一个RenderingHints对象(可能为null)构造一个ConvolveOp。- 参数
-
kernel
- 指定的Kernel
-
edgeCondition
- 指定的边缘条件 -
hints
- 指定的RenderingHints
对象 - 另请参见:
-
Kernel
,EDGE_NO_OP
,EDGE_ZERO_FILL
,RenderingHints
-
ConvolveOp
public ConvolveOp(Kernel kernel)
给出一个内核构造一个ConvolveOp。 边缘条件为EDGE_ZERO_FILL。- 参数
-
kernel
- 指定的Kernel
- 另请参见:
-
Kernel
,EDGE_ZERO_FILL
-
-
方法详细信息
-
getEdgeCondition
public int getEdgeCondition()
返回边缘条件。- 结果
-
这个
ConvolveOp
的边缘条件。 - 另请参见:
-
EDGE_NO_OP
,EDGE_ZERO_FILL
-
getKernel
public final Kernel getKernel()
返回内核。- 结果
-
Kernel
的ConvolveOp
。
-
filter
public final BufferedImage filter(BufferedImage src, BufferedImage dst)
在BufferedImages上执行卷积。 源图像的每个组件都将进行卷积(包括alpha组件,如果存在)。 如果源图像中的颜色模型与目标图像中的颜色模型不同,则将在目标中转换像素。 如果目标图像为null,则将使用源ColorModel创建BufferedImage。 如果源与目标相同,则可能抛出IllegalArgumentException。- Specified by:
-
filter
在接口BufferedImageOp
- 参数
-
src
- 要过滤的源BufferedImage
-
dst
-目的地BufferedImage
的过滤src
- 结果
-
过滤后的
BufferedImage
- 异常
-
NullPointerException
- 如果src
是null
-
IllegalArgumentException
- 如果src
等于dst
-
ImagingOpException
- 如果src
无法过滤
-
filter
public final WritableRaster filter(Raster src, WritableRaster dst)
对Rasters执行卷积。 源Raster的每个波段都将进行卷积。 源和目标必须具有相同数量的波段。 如果目标Raster为null,则将创建一个新的Raster。 如果源与目标相同,则可能抛出IllegalArgumentException。- Specified by:
-
filter
在界面RasterOp
- 参数
-
src
- 要过滤的源Raster
-
dst
-目的地WritableRaster
的过滤src
- 结果
-
过滤后的
WritableRaster
- 异常
-
NullPointerException
- 如果src
是null
-
ImagingOpException
- 如果src
和dst
没有相同数量的波段 -
ImagingOpException
- 如果无法过滤src
-
IllegalArgumentException
- 如果src
等于dst
-
createCompatibleDestImage
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
创建具有正确大小和波段数的归零目标图像。 如果destCM为null,则将使用适当的ColorModel。- Specified by:
-
createCompatibleDestImage
在接口BufferedImageOp
- 参数
-
src
- 过滤器操作的源图像。 -
destCM
- 目的地的ColorModel。 可以为null。 - 结果
-
目的地
BufferedImage
具有正确的大小和乐队数量。
-
createCompatibleDestRaster
public WritableRaster createCompatibleDestRaster(Raster src)
在给定此源的情况下,创建具有正确大小和波段数的归零目标Raster。- Specified by:
-
createCompatibleDestRaster
接口RasterOp
- 参数
-
src
- 源Raster
- 结果
-
WritableRaster
与src
兼容
-
getBounds2D
public final Rectangle2D getBounds2D(BufferedImage src)
返回已过滤目标图像的边界框。 由于这不是几何操作,因此边界框不会改变。- Specified by:
-
getBounds2D
in interfaceBufferedImageOp
- 参数
-
src
- 要过滤的BufferedImage
- 结果
-
Rectangle2D
表示目标图像的边界框。
-
getBounds2D
public final Rectangle2D getBounds2D(Raster src)
返回已过滤目标Raster的边界框。 由于这不是几何操作,因此边界框不会改变。- Specified by:
-
getBounds2D
接口RasterOp
- 参数
-
src
- 源Raster
- 结果
-
Rectangle2D
,它是过滤操作产生的Raster
的边界框。
-
getPoint2D
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
返回给定源中某个点的目标点的位置。 如果dstPt为非null,则它将用于保存返回值。 由于这不是几何操作,因此srcPt将等于dstPt。- Specified by:
-
getPoint2D
在接口BufferedImageOp
- Specified by:
-
getPoint2D
in interfaceRasterOp
- 参数
-
srcPt
- 表示源图像中的点的Point2D
-
dstPt
- 存储结果的Point2D
- 结果
-
目标图像中的
Point2D
,对应于源图像中的指定点。
-
getRenderingHints
public final RenderingHints getRenderingHints()
返回此op的呈现提示。- Specified by:
-
getRenderingHints
在接口BufferedImageOp
- Specified by:
-
getRenderingHints
在接口RasterOp
- 结果
-
RenderingHints
这个BufferedImageOp
对象。 如果未设置提示,则返回null。
-
-