java.awt.image

Class AffineTransformOp

Implemented Interfaces:
BufferedImageOp, RasterOp

public class AffineTransformOp
extends Object
implements BufferedImageOp, RasterOp

AffineTransformOp performs matrix-based transformations (translations, scales, flips, rotations, and shears). If interpolation is required, nearest neighbour, bilinear, and bicubic methods are available.

Field Summary

static int
TYPE_BICUBIC
static int
TYPE_BILINEAR
static int
TYPE_NEAREST_NEIGHBOR

Constructor Summary

AffineTransformOp(AffineTransform xform, int interpolationType)
Construct AffineTransformOp with the given xform and interpolationType.
AffineTransformOp(AffineTransform xform, RenderingHints hints)
Construct AffineTransformOp with the given xform and rendering hints.

Method Summary

BufferedImage
createCompatibleDestImage(BufferedImage src, ColorModel destCM)
Creates a new BufferedImage with the size equal to that of the transformed image and the correct number of bands.
WritableRaster
createCompatibleDestRaster(Raster src)
Creates a new WritableRaster with the size equal to the transformed source raster and correct number of bands .
BufferedImage
filter(BufferedImage src, BufferedImage dst)
Transforms source image using transform specified at the constructor.
WritableRaster
filter(Raster src, WritableRaster dst)
Transforms source raster using transform specified at the constructor.
Rectangle2D
getBounds2D(BufferedImage src)
Transforms source image using transform specified at the constructor and returns bounds of the transformed image.
Rectangle2D
getBounds2D(Raster src)
Returns bounds of the transformed raster.
int
getInterpolationType()
Returns interpolation type used during transformations.
Point2D
getPoint2D(Point2D srcPt, Point2D dstPt)
Returns location of the transformed source point.
RenderingHints
getRenderingHints()
Returns rendering hints that are used during transformation.
AffineTransform
getTransform()
Returns transform used in transformation between source and destination image.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

TYPE_BICUBIC

public static final int TYPE_BICUBIC
Field Value:
3
Since:
1.5.0

TYPE_BILINEAR

public static final int TYPE_BILINEAR
Field Value:
2

TYPE_NEAREST_NEIGHBOR

public static final int TYPE_NEAREST_NEIGHBOR
Field Value:
1

Constructor Details

AffineTransformOp

public AffineTransformOp(AffineTransform xform,
                         int interpolationType)
Construct AffineTransformOp with the given xform and interpolationType. Interpolation type can be TYPE_BILINEAR, TYPE_BICUBIC or TYPE_NEAREST_NEIGHBOR.
Parameters:
xform - AffineTransform that will applied to the source image
interpolationType - type of interpolation used
Throws:
ImagingOpException - if the transform matrix is noninvertible

AffineTransformOp

public AffineTransformOp(AffineTransform xform,
                         RenderingHints hints)
Construct AffineTransformOp with the given xform and rendering hints.
Parameters:
xform - AffineTransform that will applied to the source image
hints - rendering hints that will be used during transformation
Throws:
ImagingOpException - if the transform matrix is noninvertible

Method Details

createCompatibleDestImage

public BufferedImage createCompatibleDestImage(BufferedImage src,
                                               ColorModel destCM)
Creates a new BufferedImage with the size equal to that of the transformed image and the correct number of bands. The newly created image is created with the specified ColorModel. If a ColorModel is not specified, an appropriate ColorModel is used.
Specified by:
createCompatibleDestImage in interface BufferedImageOp
Parameters:
src - the source image.
destCM - color model for the destination image (can be null).
Returns:
a new compatible destination image.

createCompatibleDestRaster

public WritableRaster createCompatibleDestRaster(Raster src)
Creates a new WritableRaster with the size equal to the transformed source raster and correct number of bands .
Specified by:
createCompatibleDestRaster in interface RasterOp
Parameters:
src - the source raster.
Returns:
a new compatible raster.
Throws:
RasterFormatException - if resulting width or height of raster is 0.

filter

public final BufferedImage filter(BufferedImage src,
                                  BufferedImage dst)
Transforms source image using transform specified at the constructor. The resulting transformed image is stored in the destination image if one is provided; otherwise a new BufferedImage is created and returned.
Specified by:
filter in interface BufferedImageOp
Parameters:
src - source image
dst - destination image
Returns:
transformed source image.
Throws:
IllegalArgumentException - if the source and destination image are the same

filter

public final WritableRaster filter(Raster src,
                                   WritableRaster dst)
Transforms source raster using transform specified at the constructor. The resulting raster is stored in the destination raster if it is not null, otherwise a new raster is created and returned.
Specified by:
filter in interface RasterOp
Parameters:
src - source raster
dst - destination raster
Returns:
transformed raster.
Throws:
IllegalArgumentException - if the source and destination are not compatible

getBounds2D

public final Rectangle2D getBounds2D(BufferedImage src)
Transforms source image using transform specified at the constructor and returns bounds of the transformed image.
Specified by:
getBounds2D in interface BufferedImageOp
Parameters:
src - image to be transformed
Returns:
bounds of the transformed image.

getBounds2D

public final Rectangle2D getBounds2D(Raster src)
Returns bounds of the transformed raster.
Specified by:
getBounds2D in interface RasterOp
Parameters:
src - raster to be transformed
Returns:
bounds of the transformed raster.

getInterpolationType

public final int getInterpolationType()
Returns interpolation type used during transformations.
Returns:
interpolation type

getPoint2D

public final Point2D getPoint2D(Point2D srcPt,
                                Point2D dstPt)
Returns location of the transformed source point. The resulting point is stored in the dstPt if one is specified.
Specified by:
getPoint2D in interface BufferedImageOp
getPoint2D in interface RasterOp
Parameters:
srcPt - point to be transformed
dstPt - destination point
Returns:
the location of the transformed source point.

getRenderingHints

public final RenderingHints getRenderingHints()
Returns rendering hints that are used during transformation.
Specified by:
getRenderingHints in interface BufferedImageOp
getRenderingHints in interface RasterOp
Returns:
the rendering hints used in this Op.

getTransform

public final AffineTransform getTransform()
Returns transform used in transformation between source and destination image.
Returns:
the transform used in this Op.

AffineTransformOp.java -- This class performs affine transformation between two images or rasters in 2 dimensions. Copyright (C) 2004, 2006 Free Software Foundation This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.