Rotating image using Java 2D AffineTransform class : Transform « 2D Graphics GUI « Java

Rotating image using Java 2D AffineTransform class


import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;

import javax.swing.JPanel;

class ImagePanel extends JPanel {
  int offset = 5;

  private Image image;

  private int angle;

  private int w, h;

  private AffineTransform transform;

  public ImagePanel(Image i) {
    image = i;
    w = image.getWidth(this);
    h = image.getHeight(this);
    transform = new AffineTransform();

  public void paintComponent(Graphics grp) {
    Rectangle rect = this.getBounds();
    Graphics2D g2d = (Graphics2D) grp;
    transform.setToTranslation((rect.width - w) / 2,
        (rect.height - h) / 2);

    transform.rotate(Math.toRadians(angle), w / 2,
        h / 2);

    g2d.drawImage(image, transform, this);

  public void rotate() {
    angle -= offset;
    if (angle <= 0) {
      angle = 360;


Related examples in the same category

1.Coordinate DemoCoordinate Demo
2.Rotation and coordinate translation
3.Scaling an object
4.Transform DemoTransform Demo
5.Transform ShearTransform Shear
6.Transform ScaleTransform Scale
7.Transform Rotation Translation Transform Rotation Translation
8.Transforme Rotation demoTransforme Rotation demo
9.Transform Translation and RotationTransform Translation and Rotation
10.Transform Translated RotationTransform Translated Rotation
11.Transform TranslationTransform Translation
12.Line transformation, rotation, shear,scale Line transformation, rotation, shear,scale
13.AffineTransform demoAffineTransform demo
14.Scaling a Drawn Image
15.Shearing a Drawn Image
16.Translating a Drawn Image
17.Rotating a Drawn Image
18.Create an complex shape by rotating an ellipse.
19.Scaling a Shape with AffineTransform
20.Shearing a Shape with AffineTransform
21.Perform shearing: use share() method.
22.Translating a Shape with AffineTransform
23.Rotating a Shape with AffineTransform
24.Rotates a shape about the specified coordinates.
25.Resizes or translates a Shape
26.Creates and returns a translated shape.