This Java tip demonstrates a metod of applying different transformations on a buffered image. Examples of transformations may include Scaling, Shearing, Translating, and Rotating.

AffineTransform transform = new AffineTransform();
    transform.scale(scalex, scaley);
    transform.shear(shiftx, shifty);
    transform.translate(x, y);
    transform.rotate(radians, bufferedImage.getWidth()/2, 
      bufferedImage.getHeight()/2);
    
    AffineTransformOp op = new AffineTransformOp(transform, 
      AffineTransformOp.TYPE_BILINEAR);
    bufferedImage = op.filter(bufferedImage, null);