- 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 intEDGE_NO_OP源图像边缘的像素被复制到目的地中的相应像素而不进行修改。static intEDGE_ZERO_FILL目标图像边缘的像素设置为零。
-
构造方法摘要
构造方法 构造器 描述 ConvolveOp(Kernel kernel)给出一个内核构造一个ConvolveOp。ConvolveOp(Kernel kernel, int edgeCondition, RenderingHints hints)给定一个内核,一个边条件和一个RenderingHints对象(可能为null)构造一个ConvolveOp。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 BufferedImagecreateCompatibleDestImage(BufferedImage src, ColorModel destCM)创建具有正确大小和波段数的归零目标图像。WritableRastercreateCompatibleDestRaster(Raster src)在给定此源的情况下,创建具有正确大小和波段数的归零目标Raster。BufferedImagefilter(BufferedImage src, BufferedImage dst)在BufferedImages上执行卷积。WritableRasterfilter(Raster src, WritableRaster dst)对Rasters执行卷积。Rectangle2DgetBounds2D(BufferedImage src)返回已过滤目标图像的边界框。Rectangle2DgetBounds2D(Raster src)返回已过滤目标Raster的边界框。intgetEdgeCondition()返回边缘条件。KernelgetKernel()返回内核。Point2DgetPoint2D(Point2D srcPt, Point2D dstPt)返回给定源中某个点的目标点的位置。RenderingHintsgetRenderingHints()返回此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:
-
getBounds2Din 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:
-
getPoint2Din interfaceRasterOp - 参数
-
srcPt- 表示源图像中的点的Point2D -
dstPt- 存储结果的Point2D - 结果
-
目标图像中的
Point2D,对应于源图像中的指定点。
-
getRenderingHints
public final RenderingHints getRenderingHints()
返回此op的呈现提示。- Specified by:
-
getRenderingHints在接口BufferedImageOp - Specified by:
-
getRenderingHints在接口RasterOp - 结果
-
RenderingHints这个BufferedImageOp对象。 如果未设置提示,则返回null。
-
-