- java.lang.Object
-
- java.awt.image.AffineTransformOp
-
- All Implemented Interfaces:
-
BufferedImageOp
,RasterOp
public class AffineTransformOp extends Object implements BufferedImageOp, RasterOp
该类使用仿射变换来执行从源图像中的2D坐标或目标图像中的Raster
到2D坐标的线性映射或Raster
。 所使用的内插类型通过构造函数来指定,由一个RenderingHints
对象或由该类中定义的整数插值类型之一指定。如果在
RenderingHints
函数中指定了一个RenderingHints
对象,则使用插值提示和呈现质量提示来设置此操作的插值类型。 当需要颜色转换时,可以使用显色提示和抖动提示。请注意,必须满足以下约束:
- 源和目的地必须不同。
- 对于
Raster
对象,源中的频带数必须等于目标中的频带数。
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
TYPE_BICUBIC
双三次插补类型。static int
TYPE_BILINEAR
双线性插值类型。static int
TYPE_NEAREST_NEIGHBOR
最近邻插值类型。
-
构造方法摘要
构造方法 Constructor 描述 AffineTransformOp(AffineTransform xform, int interpolationType)
构造一个AffineTransformOp
给出仿射变换和插值类型。AffineTransformOp(AffineTransform xform, RenderingHints hints)
构造一个AffineTransformOp
给出一个仿射变换。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 BufferedImage
createCompatibleDestImage(BufferedImage src, ColorModel destCM)
创建具有正确大小和频带数的归零目标图像。WritableRaster
createCompatibleDestRaster(Raster src)
创建带有正确大小和频带数的归零目的地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()
返回此变换操作使用的仿射变换。
-
-
-
字段详细信息
-
TYPE_NEAREST_NEIGHBOR
@Native public static final int TYPE_NEAREST_NEIGHBOR
最近邻插值类型。- 另请参见:
- Constant Field Values
-
TYPE_BILINEAR
@Native public static final int TYPE_BILINEAR
双线性插值类型。- 另请参见:
- Constant Field Values
-
TYPE_BICUBIC
@Native public static final int TYPE_BICUBIC
双三次插补类型。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
AffineTransformOp
public AffineTransformOp(AffineTransform xform, RenderingHints hints)
构造一个AffineTransformOp
给出一个仿射变换。 插值类型由RenderingHints
对象确定。 如果定义了插补提示,将使用它。 否则,如果定义了渲染质量提示,则根据其值确定插值类型。 如果没有指定提示(hints
为空),插值类型为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_NEIGHBOR
,TYPE_BILINEAR
,TYPE_BICUBIC
。 - 异常
-
ImagingOpException
-ImagingOpException
-ImagingOpException
-ImagingOpException
-ImagingOpException
-ImagingOpException
-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
。 如果两个图像的颜色模型不匹配,则执行到目标颜色模型的颜色转换。 如果目标映像为空,则创建一个BufferedImage
源,源为ColorModel
。由
getBounds2D(BufferedImage)
返回的矩形的坐标不一定与此方法返回的BufferedImage
的坐标相同。 如果矩形的左上角坐标为负,则不绘制矩形的这一部分。 如果矩形的左上角坐标为正,则滤波后的图像将在目标BufferedImage
中的该位置绘制。如果源与目的地相同,则抛出一个
IllegalArgumentException
。- Specified by:
-
filter
接口BufferedImageOp
- 参数
-
src
- 要转化的BufferedImage
。 -
dst
-BufferedImage
其中存储转换的结果。 - 结果
-
过滤的
BufferedImage
。 - 异常
-
IllegalArgumentException
- 如果src
和dst
是相同的 -
ImagingOpException
- 如果由于无效的图像格式,瓦片格式或图像处理操作或任何其他不受支持的操作可能导致的数据处理错误,图像无法转换。
-
filter
public final WritableRaster filter(Raster src, WritableRaster dst)
转换源Raster
并将结果存储在目标Raster
。 该操作按照频带进行变换。如果目的地
Raster
为空,则创建一个新的Raster
。 如果源与目的地相同或者源中的频带数不等于目的地的频带数,则可能会抛出IllegalArgumentException
。由
getBounds2D(Raster)
返回的矩形的坐标不一定与此方法返回的WritableRaster
的坐标相同。 如果矩形的左上角坐标为负,则不绘制矩形的这一部分。 如果矩形的坐标为正,则在目标Raster
中的该位置绘制滤波图像。- Specified by:
-
filter
在接口RasterOp
- 参数
-
src
- 要转换的Raster
。 -
dst
-Raster
其中存储转换的结果。 - 结果
-
转换
Raster
。 - 异常
-
ImagingOpException
- 如果由于可能由无效的图像格式,瓦片格式或图像处理操作引起的数据处理错误或任何其他不受支持的操作导致栅格无法转换。
-
getBounds2D
public final Rectangle2D getBounds2D(BufferedImage src)
返回已转换目的地的边界框。 返回的矩形是转换点的实际边界框。 返回矩形左上角的坐标可能不是(0,0)。- Specified by:
-
getBounds2D
在接口BufferedImageOp
- 参数
-
src
- 要转化的BufferedImage
。 - 结果
-
Rectangle2D
代表目的地的边界框。
-
getBounds2D
public final Rectangle2D getBounds2D(Raster src)
返回已转换目的地的边界框。 返回的矩形将是转换点的实际边界框。 返回矩形左上角的坐标可能不是(0,0)。- Specified by:
-
getBounds2D
在接口RasterOp
- 参数
-
src
- 要转型的Raster
。 - 结果
-
表示目的地的边界框的
Rectangle2D
。
-
createCompatibleDestImage
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
创建具有正确大小和频带数的归零目标图像。 如果变换的宽度或高度等于0,则可能会抛出RasterFormatException
。如果
destCM
为空,则使用适当的ColorModel
; 即使源ColorModel
是不透明的,该ColorModel
可能具有α通道。- Specified by:
-
createCompatibleDestImage
在接口BufferedImageOp
- 参数
-
src
- 要转化的BufferedImage
。 -
destCM
- 目的地的ColorModel
。 如果为null,则使用适当的ColorModel
。 - 结果
- 归零的目标图像。
-
createCompatibleDestRaster
public WritableRaster createCompatibleDestRaster(Raster src)
创建带有正确大小和频带数的零目的地Raster
。 如果变换的宽度或高度等于0,则可能会抛出RasterFormatException
。- Specified by:
-
createCompatibleDestRaster
在接口RasterOp
- 参数
-
src
- 要转化的Raster
。 - 结果
-
零目的地
Raster
。
-
getPoint2D
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
返回在源中给出点的对应目标点的位置。 如果指定了dstPt
,则用于保存返回值。- Specified by:
-
getPoint2D
在接口BufferedImageOp
- Specified by:
-
getPoint2D
在接口RasterOp
- 参数
-
srcPt
- 代表源点的Point2D
。 -
dstPt
- 存储结果的Point2D
。 - 结果
-
目标中的
Point2D
对应于源中的指定点。
-
getTransform
public final AffineTransform getTransform()
返回此变换操作使用的仿射变换。- 结果
-
AffineTransform
与此操作相关联。
-
getRenderingHints
public final RenderingHints getRenderingHints()
返回此变换操作使用的渲染提示。- Specified by:
-
getRenderingHints
在接口BufferedImageOp
- Specified by:
-
getRenderingHints
在接口RasterOp
- 结果
-
与此操作相关联的
RenderingHints
对象。
-
-