| |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.image
类 ConvolveOp
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 可能不是同一个对象。
字段摘要 | |
---|---|
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。
- 返回:
ConvolveOp
的Kernel
。
filter
public final BufferedImage filter(BufferedImage src, BufferedImage dst)
- 对 BufferedImage 执行卷积运算。源图像的每个分量都将被卷积处理(包括 alpha 分量,如果存在)。如果源图像中的颜色模型与目标图像中的不相同,则像素将按目标中像素转换。如果目标图像为 null,则使用源 ColorModel 创建 BufferedImage。如果源与目标相同,则可能抛出 IllegalArgumentException。
- 指定者:
- 接口
BufferedImageOp
中的filter
- 参数:
src
- 要过滤的源BufferedImage
dst
- 已过滤的src
的目标BufferedImage
- 返回:
- 已过滤的
BufferedImage
- 抛出:
NullPointerException
- 如果src
为null
IllegalArgumentException
- 如果src
等于dst
ImagingOpException
- 如果src
不能过滤
filter
public final WritableRaster filter(Raster src, WritableRaster dst)
- 对 Raster 执行卷积运算。源 Raster 的每个 band 都将被卷积处理。源和目标必须有相同数量的 band。如果目标 Raster 为 null,则创建新 Raster。如果源与目标相同,则可能抛出 IllegalArgumentException。
- 参数:
src
- 要过滤的源Raster
dst
- 已过滤的src
的目标WritableRaster
- 返回:
- 已过滤的
WritableRaster
- 抛出:
NullPointerException
- 如果src
为null
ImagingOpException
- 如果src
和dst
没有相同数量的 bandImagingOpException
- 如果src
不能过滤IllegalArgumentException
- 如果src
等于dst
createCompatibleDestImage
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
- 创建具有正确 band 大小和数量的归零目标图像。如果 destCM 为 null,则使用适当的 ColorModel。
- 指定者:
- 接口
BufferedImageOp
中的createCompatibleDestImage
- 参数:
src
- 进行过滤操作的源图像。destCM
- 目标的 ColorModel。可以为 null。- 返回:
- 具有正确 band 大小和数量的
BufferedImage
。