模块 java.desktop

类 AffineTransformOp

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

public class AffineTransformOp extends Object implements BufferedImageOp , RasterOp
此类使用仿射变换执行从源图像或 Raster 中的二维坐标到目标图像或 Raster 中的二维坐标的线性映射。使用的插值类型通过构造函数指定,由 RenderingHints 对象或此类中定义的整数插值类型之一指定。

如果在构造函数中指定了RenderingHints对象,插值提示和渲染质量提示用于设置此操作的插值类型。当需要进行颜色转换时,可以使用显色提示和抖动提示。

请注意,必须满足以下限制:

  • 源和目标必须不同。
  • 对于 Raster 对象,源中的波段数必须等于目标中的波段数。
参见:
  • 字段详细信息

    • TYPE_NEAREST_NEIGHBOR

      @Native public static final int TYPE_NEAREST_NEIGHBOR
      最近邻插值类型。
      参见:
    • TYPE_BILINEAR

      @Native public static final int TYPE_BILINEAR
      双线性插值类型。
      参见:
    • TYPE_BICUBIC

      @Native public static final int TYPE_BICUBIC
      双三次插值类型。
      参见:
  • 构造方法详细信息

    • AffineTransformOp

      public AffineTransformOp(AffineTransform  xform, RenderingHints  hints)
      构造一个给定仿射变换的 AffineTransformOp。插值类型由 RenderingHints 对象确定。如果定义了插值提示,它将被使用。否则,如果定义了渲染质量提示,则根据其值确定插值类型。如果未指定提示(hints 为空),则插值类型为 TYPE_NEAREST_NEIGHBOR
      参数:
      xform - 用于操作的 AffineTransform
      hints - RenderingHints 对象用于指定操作的插值类型。
      抛出:
      ImagingOpException - 如果变换是不可逆的。
      参见:
    • AffineTransformOp

      public AffineTransformOp(AffineTransform  xform, int interpolationType)
      构造一个 AffineTransformOp 给定仿射变换和插值类型。
      参数:
      xform - 用于操作的 AffineTransform
      interpolationType - 此类定义的整数插值类型常量之一:TYPE_NEAREST_NEIGHBOR TYPE_BILINEAR TYPE_BICUBIC
      抛出:
      ImagingOpException - 如果变换是不可逆的。
  • 方法详情

    • getInterpolationType

      public final int getInterpolationType()
      返回此操作使用的插值类型。
      返回:
      插值类型。
      参见:
    • filter

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

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

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

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

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

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

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

      指定者:
      filter 在接口 RasterOp
      参数:
      src - 要转换的 Raster
      dst - 用于存储转换结果的 Raster
      返回:
      转换后的 Raster
      抛出:
      ImagingOpException - 如果由于无效图像格式、切片格式或图像处理操作或任何其他不受支持的操作可能导致的数据处理错误而无法转换栅格。
    • getBounds2D

      public final Rectangle2D  getBounds2D(BufferedImage  src)
      返回转换目标的边界框。返回的矩形是转换点的实际边界框。返回矩形的左上角坐标可能不是 (0, 0)。
      指定者:
      getBounds2D 在接口 BufferedImageOp
      参数:
      src - 要转换的 BufferedImage
      返回:
      Rectangle2D 表示目的地的边界框。
    • getBounds2D

      public final Rectangle2D  getBounds2D(Raster  src)
      返回转换目标的边界框。返回的矩形将是转换点的实际边界框。返回矩形的左上角坐标可能不是 (0, 0)。
      指定者:
      getBounds2D 在接口 RasterOp
      参数:
      src - 要转换的 Raster
      返回:
      Rectangle2D 表示目的地的边界框。
    • createCompatibleDestImage

      public BufferedImage  createCompatibleDestImage(BufferedImage  src, ColorModel  destCM)
      创建具有正确大小和波段数的归零目标图像。如果转换后的宽度或高度等于 0,则可能会抛出 RasterFormatException

      如果 destCM 为空,则使用适当的 ColorModel;这个 ColorModel 可能有一个 alpha 通道,即使源 ColorModel 是不透明的。

      指定者:
      createCompatibleDestImage 在接口 BufferedImageOp
      参数:
      src - 要转换的 BufferedImage
      destCM - ColorModel 的目的地。如果为空,则使用适当的 ColorModel
      返回:
      归零的目标图像。
    • createCompatibleDestRaster

      public WritableRaster  createCompatibleDestRaster(Raster  src)
      创建一个带正确大小和数量的归零目的地Raster。如果转换后的宽度或高度等于 0,则可能会抛出 RasterFormatException
      指定者:
      createCompatibleDestRaster 在接口 RasterOp
      参数:
      src - 要转换的 Raster
      返回:
      归零目的地 Raster
    • getPoint2D

      public final Point2D  getPoint2D(Point2D  srcPt, Point2D  dstPt)
      返回源中给定点的相应目标点的位置。如果指定dstPt,则用于保存返回值。
      指定者:
      getPoint2D 在接口 BufferedImageOp
      指定者:
      getPoint2D 在接口 RasterOp
      参数:
      srcPt - 代表源点的 Point2D
      dstPt - 存储结果的 Point2D
      返回:
      目标中的 Point2D 对应于源中的指定点。
    • getTransform

      public final AffineTransform  getTransform()
      返回此变换操作使用的仿射变换。
      返回:
      与此操作关联的 AffineTransform
    • getRenderingHints

      public final RenderingHints  getRenderingHints()
      返回此转换操作使用的呈现提示。
      指定者:
      getRenderingHints 在接口 BufferedImageOp
      指定者:
      getRenderingHints 在接口 RasterOp
      返回:
      与此操作关联的 RenderingHints 对象。