java.lang.Object java.awt.image.AffineTransformOp
public class AffineTransformOp
此类使用仿射转换来执行从源图像或 Raster
中 2D 坐标到目标图像或 Raster
中 2D 坐标的线性映射。所使用的插值类型由构造方法通过一个 RenderingHints
对象或通过此类中定义的整数插值类型之一来指定。
如果在构造方法中指定了 RenderingHints
对象,则使用插值提示和呈现的质量提示为此操作设置插值类型。要求进行颜色转换时,可以使用颜色呈现提示和抖动提示。
注意,务必要满足以下约束:
Raster
对象,源图像中的 band 数必须等于目标图像中的 band 数。
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 |
字段详细信息 |
---|
public static final int TYPE_NEAREST_NEIGHBOR
public static final int TYPE_BILINEAR
public static final int TYPE_BICUBIC
构造方法详细信息 |
---|
public AffineTransformOp(AffineTransform xform, RenderingHints hints)
AffineTransformOp
。根据
RenderingHints
对象确定插值类型。如果定义了插值提示,则要使用该提示。否则,如果定义了呈现的质量提示,则根据其值确定插值类型。如果没有指定提示(
hints
为 null),则插值类型为
TYPE_NEAREST_NEIGHBOR
。
xform
- 该操作要使用的
AffineTransform
。
hints
- 用于指定该操作插值类型的
RenderingHints
对象。
ImagingOpException
- 如果转换是不可逆的。
RenderingHints.KEY_INTERPOLATION
,
RenderingHints.KEY_RENDERING
public AffineTransformOp(AffineTransform xform, int interpolationType)
AffineTransformOp
。
xform
- 该操作要使用的
AffineTransform
。
interpolationType
- 由此类定义的整数插值类型常量之一:
TYPE_NEAREST_NEIGHBOR
、
TYPE_BILINEAR
、
TYPE_BICUBIC
。
ImagingOpException
- 如果转换是不可逆的。
方法详细信息 |
---|
public final int getInterpolationType()
TYPE_NEAREST_NEIGHBOR
,
TYPE_BILINEAR
,
TYPE_BICUBIC
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
- 如果
src
和
dst
相同
ImagingOpException
- 如果由于无效的图像格式、tile 格式、图像处理操作或任何其他不受支持的操作引起的数据处理错误,导致该图像无法转换。
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
中的该位置绘制过滤后的图像。
src
- 要转换的
Raster
。
dst
- 要在其中存储转换结果的
Raster
。
Raster
。
ImagingOpException
- 如果由于无效的图像格式、tile 格式、图像处理操作或任何其他不受支持的操作引起的数据处理错误,导致该 raster 无法转换。
public final Rectangle2D getBounds2D(BufferedImage src)
BufferedImageOp
中的
getBounds2D
src
- 要转换的
BufferedImage
。
Rectangle2D
。
public final Rectangle2D getBounds2D(Raster src)
RasterOp
中的
getBounds2D
src
- 要转换的
Raster
。
Rectangle2D
。
public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel destCM)
RasterFormatException
。
如果 destCM
为 null,则使用合适的 ColorModel
;即使源 ColorModel
是不透明的,此 ColorModel
也可能具有一个 alpha 通道。
BufferedImageOp
中的
createCompatibleDestImage
src
- 要转换的
BufferedImage
。
destCM
- 目标
ColorModel
。如果它为 null,则使用一个合适的
ColorModel
。
public WritableRaster createCompatibleDestRaster(Raster src)
Raster
。如果转换后的宽度和高度等于 0,则可能抛出
RasterFormatException
。
RasterOp
中的
createCompatibleDestRaster
src
- 要转换的
Raster
。
Raster
。
public final Point2D getPoint2D(Point2D srcPt, Point2D dstPt)
dstPt
,则使用它来保存返回值。
BufferedImageOp
中的
getPoint2D
RasterOp
中的
getPoint2D
srcPt
- 表示源点
Point2D
。
dstPt
- 用于存储结果
Point2D
。
Point2D
。
public final AffineTransform getTransform()
AffineTransform
。
public final RenderingHints getRenderingHints()
BufferedImageOp
中的
getRenderingHints
RasterOp
中的
getRenderingHints
RenderingHints
对象。