+
+ Rectangle2D r = op.getBounds2D(original);
+ int width = (int) Math.ceil(r.getWidth());
+ int height = (int) Math.ceil(r.getHeight());
+
+ // Real transform, now that we know the size of the new image and how to translate after we rotate
+ // to keep it centered
+ at = new AffineTransform();
+ at.rotate(radians, width / 2.0, height / 2.0);
+ at.translate(((width - original.getWidth()) / 2.0),
+ ((height - original.getHeight()) / 2.0));
+ op = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC);
+