Module java.desktop
Package java.awt.image

Class AffineTransformOp

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

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

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

请注意必须满足以下约束条件:

  • 源和目标必须不同。
  • 对于Raster对象,源中的波段数必须等于目标中的波段数。
参见:
  • Field Details

    • 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
      双三次插值类型。
      参见:
  • Constructor Details

    • AffineTransformOp

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

      public AffineTransformOp(AffineTransform xform, int interpolationType)
      给定一个仿射变换和插值类型构造一个AffineTransformOp
      参数:
      xform - 用于操作的AffineTransform
      interpolationType - 由该类定义的整数插值类型常量之一:TYPE_NEAREST_NEIGHBORTYPE_BILINEARTYPE_BICUBIC
      抛出:
      ImagingOpException - 如果变换不可逆。
  • Method Details

    • 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为null,则会创建一个新的Raster。如果源与目标相同或源中的波段数不等于目标中的波段数,则可能会抛出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为null,则使用适当的ColorModel;即使源ColorModel是不透明的,此ColorModel可能具有alpha通道。

      指定者:
      createCompatibleDestImage 在接口 BufferedImageOp
      参数:
      src - 要转换的BufferedImage
      destCM - 目标的ColorModel。如果为null,则使用适当的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对象。