Java2D图像质量在旋转后丢失

Java2D图像质量在旋转后丢失,java,image,rotation,awt,paint,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

我使用下面的代码来旋转我的图像

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图像质量将丢失


有什么问题吗?

您必须使用抗锯齿,请尝试以下方法:

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
例如: 右边的图标是抗锯齿的

其他答案有一半是正确的:您的问题可以通过设置渲染提示来解决。但在这种情况下,它不是抗锯齿

在应用变换之前,请尝试添加以下内容:

g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
                     RenderingHints.VALUE_RENDER_QUALITY);

这可能是一个别名问题。要解决此问题,可以启用各种类型的抗锯齿。看看这个,它应该会有帮助:.1)要更快地获得更好的帮助,请发布一个。2) 例如,获取图像的一种方法是热链接到中看到的图像。我设置了渲染点击,但没有任何更改。