Java2D 旋转后图像质量丢失

标签 java image rotation awt paint

我正在使用以下代码来旋转图像

public class Field extends Canvas implements ActionListener {

    @Override
    public void paint(Graphics grphcs) {        
        super.paint(grphcs);         
        Graphics2D g2d = (Graphics2D) grphcs;
        AffineTransform affine = new AffineTransform();
        int angle = car.getAngle();
        Image image = car.getCarImage();       
        int x = (int) car.getX();
        int y = (int) car.getY();

        affine.rotate(Math.toRadians(angle), x + image.getWidth(null) / 2, 
               y + image.getHeight(null) / 2);
        g2d.setTransform(affine); 
        g2d.drawImage(image, x, y, null);     
    }  
    ....

例如,如果角度等于 5,图像质量就会丢失。

enter image description here

有什么问题吗?

最佳答案

您必须使用抗锯齿功能,试试这个:

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);

示例: 右边的图标是抗锯齿的 /image/svDR8.png

关于Java2D 旋转后图像质量丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21043525/

相关文章:

java - 不同 Activity 中的 AdMob 广告单元 ID 不同?提高匹配率?

css - 如何使 shrinkwrap 与响应式图像一起使用?

image - 使用 Docker 从私有(private)注册表加载具有依赖项的镜像

javascript - 拖动时图像的旋转值

OpenCV 的 RotatedRect 角度没有提供足够的信息

java - While循环不起作用错误: bad operand types for binary operator '!=' Java

java - Servlet.service() for servlet [...] 在路径 [/...] 的上下文中抛出异常 [Servlet 执行抛出异常] 具有根本原因

java - 是否可以在 ImageIcon 中保持透明背景?

java - 如何在 JavaFX 3D 中制作第一人称相机?

java - Log4j2:如何打印日志中的所有对象参数