【问题标题】:Image Quality Gets Ruined In Java Graphics2D Rotate图像质量在 Java Graphics2D Rotate 中被破坏
【发布时间】:2012-06-22 15:41:14
【问题描述】:

我在使用 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();
}

我可以做些什么来避免质量损失?

【问题讨论】:

  • @DavidKroukamp Observer 如何帮助解决图像质量下降问题?
  • 如需尽快获得更好的帮助,请发帖 SSCCE。在内存中生成图像。

标签: java image rotation graphics2d


【解决方案1】:

所以目前当球移动时,您将图像旋转几度并用新图像覆盖原始图像?每次旋转图像时,都会添加一点点失真;经过多次旋转,扭曲变得更加复杂。

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

【讨论】:

  • 哦,哇,我从来没有这样想过。这真是个好主意!我会试一试,看看效果如何!
【解决方案2】:

我知道这是一个相当古老的问题,但对于任何想要做类似事情的人来说,尝试将以下代码放在你的 g.drawImage 之前

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

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

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2013-03-29
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多