Java image transformation

This can not be done using the AffineTransform class. See Wikipedia article on affine transformation:

In general, an affine transformation is composed of linear transformations (rotation, scaling or shear) and a translation (or "shift").

What you need is some form of perspective transform. From http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/PerspectiveTransform.html

A perspective transformation is capable of mapping an arbitrary quadrilateral into another arbitrary quadrilateral, while preserving the straightness of lines. Unlike an affine transformation, the parallelism of lines in the source is not necessarily preserved in the output.

From http://answers.google.com/answers/threadview/id/515829.html

The Java Advanced Imaging API allows you to easily perform perspective transform.

As in Java2D and Java3D, these routines are optimised, they are not run in the usual java interpreted manner - so they are very fast as well.

The JAI is downloadable from

http://java.sun.com/products/java-media/jai/downloads/download-1_1_2.html

You can find info on how to run perspective transform in:

http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/