Azuu
Azuu

Reputation: 856

Rotating an Image in java

I have an image of a Pan Card and when I try to rotate it by 45 degrees and save it, I get a cropped image. Code to rotate an image is:

    BufferedImage dimg = new BufferedImage(w, h, img.getType());
    Graphics2D g = dimg.createGraphics();
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, // Anti-alias!
            RenderingHints.VALUE_ANTIALIAS_ON);

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

    g.drawImage(img, null, 0, 0);

Upvotes: 7

Views: 30765

Answers (1)

Colin Pickard
Colin Pickard

Reputation: 46663

Have a look at this example, using AffineTransform.

There's some code to load the image, then this is the core:

private Image image;
AffineTransform identity = new AffineTransform();

Graphics2D g2d = (Graphics2D)g;
AffineTransform trans = new AffineTransform();
trans.setTransform(identity);
trans.rotate( Math.toRadians(45) );
g2d.drawImage(image, trans, this);

Upvotes: 10

Related Questions