java - 旋转 BufferedImage 实例

标签 java swing rotation bufferedimage graphics2d

我无法显示旋转的 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/

相关文章:

java - 这个java代码中有逻辑错误,我该如何解决这个错误?

java - 如何随机排列没有两个重复项的字符数组?

kubernetes - Rancher/kubernetes 轮换证书的位置

iPad FormSheet/PageSheet 模态视图,旋转时会填满整个屏幕。T

OpenGL - FPS 风格相机移动,物体固定在相机上

java - 如何使用 struts2 将 Java bean 数组呈现为 XML?

java - 试图将java对象存储在连续内存中

java - 如何在 Java 中组织图形和绘图

java - 如何将鼠标监听器添加到 JPanel 图像?

java - 如何制作图形程序?