Java Graphics2D旋转会破坏图像质量

Java Graphics2D旋转会破坏图像质量,java,image,rotation,graphics2d,Java,Image,Rotation,Graphics2d,使用Graphics2D旋转方法旋转图像时遇到问题 以下是我遇到的问题的图像: 当我移动球时,图像在旋转时会完全扭曲 以下是我的旋转方法: public static void rotate(BufferedImage img, Rectangle rect, int degrees) { Graphics2D g = (Graphics2D) img.createGraphics(); g.rotate(degrees, rect.x + rect.width/2, rec

使用Graphics2D旋转方法旋转图像时遇到问题

以下是我遇到的问题的图像:

当我移动球时,图像在旋转时会完全扭曲

以下是我的旋转方法:

public static void rotate(BufferedImage img, Rectangle rect, int degrees) { 
    Graphics2D g = (Graphics2D) img.createGraphics();
    g.rotate(degrees, rect.x + rect.width/2, rect.y + rect.height/2);
    g.drawImage(img, rect.x, rect.y, rect.width, rect.height, null);
    g.dispose();
}

我能做些什么来避免质量损失吗?

因此,当球移动时,您将图像旋转几度,然后用新图像覆盖原始图像?每次旋转图像时,都会增加一点点失真;在多次旋转过程中,失真是复合的


取而代之的是,只需将原始图像保存在内存中,并存储它在屏幕上应该旋转的度数。然后每次渲染时,将原始图像旋转当前度数。

我知道这是一个非常老的问题,但对于任何希望执行类似操作的人,请尝试将以下代码放在g.drawImage之前

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

这应该有助于使图像看起来更好。

@DavidKroukamp
观察者如何帮助减少图像质量损失?要更快地获得更好的帮助,请发布一篇文章。在内存中生成图像。哦,哇,我从来没有这样想过。这真是个好主意!我会试试看,看看会怎么样!