java.awt.image

接口
异常
java.lang.Object
  继承者 java.awt.image.ConvolveOp
所有已实现的接口:
BufferedImageOp, RasterOp

public class ConvolveOp
     
extends Object
implements BufferedImageOp, RasterOp

此类实现从源到目标的卷积。使用卷积核的卷积是一种通过输入像素来计算输出像素的空间运算,方法是将核与输入像素邻域相乘。这种运算使得直接邻域可按核数学指定的方式影响输出像素。

此类可对颜色分量预乘 alpha 分量的 BufferedImage 数据进行运算。如果源 BufferedImage 有 alpha 分量,并且颜色分量没有预乘 alpha 分量,则在卷积运算前要先预乘该数据。如果 Destination 有未进行预乘的颜色分量,则在存入到 Destination 之前除以 alpha 分量(如果 alpha 为 0,则颜色分量被设置为 0)。如果 Destination 没有 alpha 分量,则在颜色分量除以 alpha 分量之从后即丢弃 alpha 分量。

Raster 被看作是没有 alpha 通道的。如果不希望对 BufferedImage 中的 alpha 通道进行上述处理,则可以通过获取源 BufferedImage 的 Raster 和使用与 Raster 一起工作的此类的 filter 方法予以避免。

如果 RenderingHints 对象是在构造方法中指定的,则在需要进行颜色变换时使用颜色呈现提示和抖动提示。

注意,Source 和 Destination 可能不是同一个对象。

另请参见:
Kernel, RenderingHints.KEY_COLOR_RENDERING, RenderingHints.KEY_DITHERING

字段摘要
static int EDGE_NO_OP
          将位于源图像边缘的像素复制为目标中相应的像素,不加修改。
static int EDGE_ZERO_FILL
          位于目标图像边缘的像素被设置为 0。
 
构造方法摘要
ConvolveOp(Kernel kernel)
          构造给定了 Kernel 的 ConvolveOp。
ConvolveOp(Kernel kernel, int edgeCondition, RenderingHints hints)
          构造给定 Kernel、边缘条件和 RenderingHint 对象(可以为 null)的 ConvolveOp。
 
方法摘要
 BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
          创建具有正确 band 大小和数量的归零目标图像。
 WritableRaster createCompatibleDestRaster(Raster src)
          创建给定源且具有正确 band 大小和数量的归零目标 Raster。
 BufferedImage filter(BufferedImage src, BufferedImage dst)
          对 BufferedImage 执行卷积运算。
 WritableRaster filter(Raster src, WritableRaster dst)
          对 Raster 执行卷积运算。
 Rectangle2D getBounds2D(BufferedImage src)
          返回已过滤目标图像的边界框。
 Rectangle2D getBounds2D(Raster src)
          返回已过滤目标 Raster 的边界框。
 int getEdgeCondition()
          返回边缘条件。
 Kernel getKernel()
          返回 Kernel。
 Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
          返回源中给定点的目标点位置。
 RenderingHints getRenderingHints()
          返回此 op 的呈现提示。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

EDGE_ZERO_FILL

public static final int EDGE_ZERO_FILL
位于目标图像边缘的像素被设置为 0。这是默认设置。

另请参见:
常量字段值

EDGE_NO_OP

public static final int EDGE_NO_OP
将位于源图像边缘的像素复制为目标中相应的像素,不加修改。

另请参见:
常量字段值
构造方法详细信息

ConvolveOp

public ConvolveOp(Kernel kernel,
                  int edgeCondition,
                  RenderingHints hints)
构造给定 Kernel、边缘条件和 RenderingHint 对象(可以为 null)的 ConvolveOp。

参数:
kernel - 指定的 Kernel
edgeCondition - 指定的边缘条件
hints - 指定的 RenderingHints 对象
另请参见:
Kernel, EDGE_NO_OP, EDGE_ZERO_FILL, RenderingHints

ConvolveOp

public ConvolveOp(Kernel 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。

返回:
ConvolveOpKernel

filter

public final BufferedImage filter(BufferedImage src,
                                  BufferedImage dst)
对 BufferedImage 执行卷积运算。源图像的每个分量都将被卷积处理(包括 alpha 分量,如果存在)。如果源图像中的颜色模型与目标图像中的不相同,则像素将按目标中像素转换。如果目标图像为 null,则使用源 ColorModel 创建 BufferedImage。如果源与目标相同,则可能抛出 IllegalArgumentException。

指定者:
接口 BufferedImageOp 中的 filter
参数:
src - 要过滤的源 BufferedImage
dst - 已过滤的 src 的目标 BufferedImage
返回:
已过滤的 BufferedImage
抛出:
NullPointerException - 如果 srcnull
IllegalArgumentException - 如果 src 等于 dst
ImagingOpException - 如果 src 不能过滤

filter

public final WritableRaster filter(Raster src,
                                   WritableRaster dst)
对 Raster 执行卷积运算。源 Raster 的每个 band 都将被卷积处理。源和目标必须有相同数量的 band。如果目标 Raster 为 null,则创建新 Raster。如果源与目标相同,则可能抛出 IllegalArgumentException。

指定者:
接口 RasterOp 中的 filter
参数:
src - 要过滤的源 Raster
dst - 已过滤的 src 的目标 WritableRaster
返回:
已过滤的 WritableRaster
抛出:
NullPointerException - 如果 srcnull
ImagingOpException - 如果 srcdst 没有相同数量的 band
ImagingOpException - 如果 src 不能过滤
IllegalArgumentException - 如果 src 等于 dst

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src,
                                               ColorModel destCM)
创建具有正确 band 大小和数量的归零目标图像。如果 destCM 为 null,则使用适当的 ColorModel。

指定者:
接口 BufferedImageOp 中的 createCompatibleDestImage
参数:
src - 进行过滤操作的源图像。
destCM - 目标的 ColorModel。可以为 null。
返回:
具有正确 band 大小和数量的 BufferedImage

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
创建给定源且具有正确 band 大小和数量的归零目标 Raster。

指定者:
接口 RasterOp 中的 createCompatibleDestRaster
参数:
src - 源 Raster
返回:
src 兼容的 WritableRaster

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
返回已过滤目标图像的边界框。因为这不是几何操作,所以边界框不变。

指定者:
接口 BufferedImageOp 中的 getBounds2D
参数:
src - 要过滤的 BufferedImage
返回:
表示目标图像边界框的 Rectangle2D

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
返回已过滤目标 Raster 的边界框。因为这不是几何操作,所以边界框不变。

指定者:
接口 RasterOp 中的 getBounds2D
参数:
src - 源 Raster
返回:
一个 Rectangle2D,它是从过滤操作得到的 Raster 的边界框。

getPoint2D

public final Point2D getPoint2D(Point2D srcPt,
                                Point2D dstPt)
返回源中给定点的目标点位置。如果 dstPt 为非 null,则该位置将用来存储返回值。因为这不是几何操作,所以 srcPt 将等于 dstPt。

指定者:
接口 BufferedImageOp 中的 getPoint2D
指定者:
接口 RasterOp 中的 getPoint2D
参数:
srcPt - 表示源图像中点的 Point2D
dstPt - 用于存储结果的 Point2D
返回:
与源图像中指定点对应的目标图像中的 Point2D

getRenderingHints

public final RenderingHints getRenderingHints()
返回此 op 的呈现提示。

指定者:
接口 BufferedImageOp 中的 getRenderingHints
指定者:
接口 RasterOp 中的 getRenderingHints
返回:
针对此 BufferedImageOpRenderingHints 对象。如果没有设置提示,则返回 null。