static BufferedImage rotateImageClockwise90(BufferedImage img) { int w = img.getWidth(), h = img.getHeight(); BufferedImage canvas = newBufferedImage(h, w); Graphics2D g = canvas.createGraphics(); g.translate((h - w) / 2, (h - w) / 2); g.rotate(Math.PI / 2, h / 2, w / 2); g.drawRenderedImage(img, null); ret canvas; }