我无法显示旋转的 BufferedImage
。我认为旋转工作得很好,但我实际上无法将它绘制到屏幕上。我的代码:
Class extends JPanel {
BufferedImage img;
int rotation = 0;
public void paintComponent(Graphics g) {
g.clearRect(0, 0, getWidth(), getHeight());
img2d = img.createGraphics();
img2d.rotate(Math.toRadians(rotation), img.getWidth() / 2, img.getHeight() / 2);
g.drawImage(img, imgx, imgy, null);
this.repaint();
}
}
这对我不起作用。我找不到任何方法将旋转后的 img2d
绘制到 g
上。
编辑:我有多个对象被绘制到 g
上,所以我无法旋转它。我需要能够单独旋转东西。
最佳答案
也许你应该尝试像这样使用 AffineTransform
:
AffineTransform transform = new AffineTransform();
transform.rotate(radians, bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2);
AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
bufferedImage = op.filter(bufferedImage, null);
希望这会有所帮助。
关于java - 旋转 BufferedImage 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918482/