I need to be able to rotate images individually(in java). The only thing I have found so far is g2d.drawImage(image, affinetransform, ImageObserver ). Unfortunately, I need to draw the image at a specific point, and there is no method with an argument that 1.rotates the image separately and 2. allows me to set the x and y. any help is appreciated
Advertisement
Answer
This is how you can do it. This code assumes the existance of a buffered image called ‘image’ (like your comment says)
// The required drawing location int drawLocationX = 300; int drawLocationY = 300; // Rotation information double rotationRequired = Math.toRadians (45); double locationX = image.getWidth() / 2; double locationY = image.getHeight() / 2; AffineTransform tx = AffineTransform.getRotateInstance(rotationRequired, locationX, locationY); AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR); // Drawing the rotated image at the required drawing locations g2d.drawImage(op.filter(image, null), drawLocationX, drawLocationY, null);