JavaTM 2 Platform
Standard Ed. 5.0

java.awt.image
类 AffineTransformOp

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

public class AffineTransformOp
extends Object
implements BufferedImageOp, RasterOp

此类使用仿射转换来执行从源图像或 Raster 中 2D 坐标到目标图像或 Raster 中 2D 坐标的线性映射。所使用的插值类型由构造方法通过一个 RenderingHints 对象或通过此类中定义的整数插值类型之一来指定。

如果在构造方法中指定了 RenderingHints 对象,则使用插值提示和呈现的质量提示为此操作设置插值类型。要求进行颜色转换时,可以使用颜色呈现提示和抖动提示。

注意,务必要满足以下约束:

另请参见:
AffineTransform, BufferedImageFilter, RenderingHints.KEY_INTERPOLATION, RenderingHints.KEY_RENDERING, RenderingHints.KEY_COLOR_RENDERING, RenderingHints.KEY_DITHERING

字段摘要
static int TYPE_BICUBIC
          双三次插值类型。
static int TYPE_BILINEAR
          双线性的插值类型。
static int TYPE_NEAREST_NEIGHBOR
          最接近的邻插值类型。
 
构造方法摘要
AffineTransformOp(AffineTransform xform, int interpolationType)
          根据仿射转换和插值类型构造一个 AffineTransformOp
AffineTransformOp(AffineTransform xform, RenderingHints hints)
          根据仿射转换构造 AffineTransformOp
 
方法摘要
 BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
          创建一个具有正确大小和 band 数的经过检查的目标图像。
 WritableRaster createCompatibleDestRaster(Raster src)
          创建一个具有正确大小和 band 数的经过检查的目标 Raster
 BufferedImage filter(BufferedImage src, BufferedImage dst)
          转换源 BufferedImage 并将结果存储在目标 BufferedImage 中。
 WritableRaster filter(Raster src, WritableRaster dst)
          转换源 Raster 并将结果存储在目标 Raster 中。
 Rectangle2D getBounds2D(BufferedImage src)
          返回转换后的目标图像的边界框。
 Rectangle2D getBounds2D(Raster src)
          返回转换后的目标图像的边界框。
 int getInterpolationType()
          返回由此 op 使用的插值类型。
 Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
          返回与源图像中给定点对应的目标点的位置。
 RenderingHints getRenderingHints()
          返回此转换操作使用的呈现提示。
 AffineTransform getTransform()
          返回此转换操作使用的仿射转换。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

TYPE_NEAREST_NEIGHBOR

public static final int TYPE_NEAREST_NEIGHBOR
最接近的邻插值类型。

另请参见:
常量字段值

TYPE_BILINEAR

public static final int TYPE_BILINEAR
双线性的插值类型。

另请参见:
常量字段值

TYPE_BICUBIC

public static final int TYPE_BICUBIC
双三次插值类型。

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

AffineTransformOp

public AffineTransformOp(AffineTransform xform,
                         RenderingHints hints)
根据仿射转换构造 AffineTransformOp。插值类型从 RenderingHints 对象确定。如果定义了插值提示,则要使用该提示。否则,如果定义了呈现的质量提示,则从其值确定插值类型。如果没有指定提示(hints 为 null),则插值类型为 TYPE_NEAREST_NEIGHBOR

参数:
xform - 该操作要使用的 AffineTransform
hints - 用于指定该操作插值类型的 RenderingHints 对象。
抛出:
ImagingOpException - 如果转换是不可逆的。
另请参见:
RenderingHints.KEY_INTERPOLATION, RenderingHints.KEY_RENDERING

AffineTransformOp

public AffineTransformOp(AffineTransform xform,
                         int interpolationType)
根据仿射转换和插值类型构造一个 AffineTransformOp

参数:
xform - 该操作要使用的 AffineTransform
interpolationType - 由此类定义的整数插值类型常量之一:TYPE_NEAREST_NEIGHBORTYPE_BILINEARTYPE_BICUBIC
抛出:
ImagingOpException - 如果转换是不可逆的。
方法详细信息

getInterpolationType

public final int getInterpolationType()
返回由此 op 使用的插值类型。

返回:
插值类型。
另请参见:
TYPE_NEAREST_NEIGHBOR, TYPE_BILINEAR, TYPE_BICUBIC

filter

public final BufferedImage filter(BufferedImage src,
                                  BufferedImage dst)
转换源 BufferedImage 并将结果存储在目标 BufferedImage 中。如果两个图像的颜色模型不匹配,则将颜色模型转换成目标颜色模型。如果目标图像为 null,则使用源 ColorModel 创建 BufferedImage

getBounds2D(BufferedImage) 返回的矩形坐标不一定与由此方法返回的 BufferedImage 的坐标相同。如果矩形的左上角坐标为负,则不用绘制矩形的这一部分。如果矩形的左上角坐标为正,则在目标 BufferedImage 中的该位置绘制过滤后的图像。

如果源图像与目标图像相同,则抛出 IllegalArgumentException

指定者:
接口 BufferedImageOp 中的 filter
参数:
src - 要转换的 BufferedImage
dst - 要在其中存储转换结果的 BufferedImage
返回:
过滤后的 BufferedImage
抛出:
IllegalArgumentException - 如果 srcdst 相同
ImagingOpException - 如果由于无效的图像格式、tile 格式、图像处理操作或任何其他不受支持的操作引起的数据处理错误,导致该图像无法转换。

filter

public final WritableRaster filter(Raster src,
                                   WritableRaster dst)
转换源 Raster 并将结果存储在目标 Raster 中。此操作逐个 band 执行转换。

如果目标 Raster 为 null,则创建一个新的 Raster。如果源 Raster 与目标 Raster 相同,或者源 Raster 中的 band 数不等于目标 Raster 中的 band 数,则可能抛出 IllegalArgumentException

getBounds2D(Raster) 返回的矩形坐标不一定与由此方法返回的 WritableRaster 的坐标相同。如果矩形的左上角坐标为负,则不用绘制矩形的这一部分。如果矩形的左上角坐标为正数,则在目标 Raster 中的该位置绘制过滤后的图像。

指定者:
接口 RasterOp 中的 filter
参数:
src - 要转换的 Raster
dst - 要在其中存储转换结果的 Raster
返回:
转换后的 Raster
抛出:
ImagingOpException - 如果由于无效的图像格式、tile 格式、图像处理操作或任何其他不受支持的操作引起的数据处理错误,导致该 raster 无法转换。

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
返回转换后的目标图像的边界框。返回的矩形是转换后的点的实际边界框。返回矩形的左上角坐标不一定是 (0, 0)。

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

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
返回转换后的目标图像的边界框。返回的矩形将是转换后的点的实际边界框。返回矩形的左上角坐标不一定是 (0, 0)。

指定者:
接口 RasterOp 中的 getBounds2D
参数:
src - 要转换的 Raster
返回:
表示目标图像边界框的 Rectangle2D

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src,
                                               ColorModel destCM)
创建一个具有正确大小和 band 数的经过检查的目标图像。如果转换后的宽度和高度等于 0,则可能抛出 RasterFormatException

如果 destCM 为 null,则使用合适的 ColorModel;即使源 ColorModel 是不透明的,此 ColorModel 也可能具有一个 alpha 通道。

指定者:
接口 BufferedImageOp 中的 createCompatibleDestImage
参数:
src - 要转换的 BufferedImage
destCM - 目标 ColorModel。如果它为 null,则使用一个合适的 ColorModel
返回:
经过检查的目标图像。

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
创建一个具有正确大小和 band 数的经过检查的目标 Raster。如果转换后的宽度和高度等于 0,则可能抛出 RasterFormatException

指定者:
接口 RasterOp 中的 createCompatibleDestRaster
参数:
src - 要转换的 Raster
返回:
经过检查的目标 Raster

getPoint2D

public final Point2D getPoint2D(Point2D srcPt,
                                Point2D dstPt)
返回与源图像中给定点对应的目标点的位置。如果指定了 dstPt,则使用它来保存返回值。

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

getTransform

public final AffineTransform getTransform()
返回此转换操作使用的仿射转换。

返回:
与此操作关联的 AffineTransform

getRenderingHints

public final RenderingHints getRenderingHints()
返回此转换操作使用的呈现提示。

指定者:
接口 BufferedImageOp 中的 getRenderingHints
指定者:
接口 RasterOp 中的 getRenderingHints
返回:
与此操作关联的 RenderingHints 对象。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策