模块  java.desktop
软件包  java.awt.image

Class ConvolveOp

  • 实现的所有接口
    BufferedImageOpRasterOp

    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可能不是同一个对象。

    另请参见:
    KernelRenderingHints.KEY_COLOR_RENDERINGRenderingHints.KEY_DITHERING
    • 字段详细信息

      • EDGE_ZERO_FILL

        @Native
        public static final int EDGE_ZERO_FILL
        目标图像边缘的像素设置为零。 这是默认值。
        另请参见:
        常数字段值
      • EDGE_NO_OP

        @Native
        public static final int EDGE_NO_OP
        源图像边缘的像素被复制到目的地中的相应像素而不进行修改。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • ConvolveOp

        public ConvolveOp​(Kernel kernel,
                          int edgeCondition,
                          RenderingHints hints)
        给定一个内核,一个边条件和一个RenderingHints对象(可能为null)构造一个ConvolveOp。
        参数
        kernel - 指定的 Kernel
        edgeCondition - 指定的边缘条件
        hints - 指定的 RenderingHints对象
        另请参见:
        KernelEDGE_NO_OPEDGE_ZERO_FILLRenderingHints
      • ConvolveOp

        public ConvolveOp​(Kernel kernel)
        给出一个内核构造一个ConvolveOp。 边缘条件为EDGE_ZERO_FILL。
        参数
        kernel - 指定的 Kernel
        另请参见:
        KernelEDGE_ZERO_FILL
    • 方法详细信息

      • getEdgeCondition

        public int getEdgeCondition()
        返回边缘条件。
        结果
        这个 ConvolveOp的边缘条件。
        另请参见:
        EDGE_NO_OPEDGE_ZERO_FILL
      • getKernel

        public final Kernel getKernel()
        返回内核。
        结果
        KernelConvolveOp
      • 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 - 如果 srcnull
        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 - 如果 srcnull
        ImagingOpException - 如果 srcdst没有相同数量的波段
        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
        结果
        WritableRastersrc兼容
      • getBounds2D

        public final Rectangle2D getBounds2D​(BufferedImage src)
        返回已过滤目标图像的边界框。 由于这不是几何操作,因此边界框不会改变。
        Specified by:
        getBounds2D in interface BufferedImageOp
        参数
        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 interface RasterOp
        参数
        srcPt - 表示源图像中的点的 Point2D
        dstPt - 存储结果的 Point2D
        结果
        目标图像中的 Point2D ,对应于源图像中的指定点。