我正在使用以下代码来旋转图像
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);
示例: 右边的图标是抗锯齿的 /image/svDR8.png
关于Java2D 旋转后图像质量丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21043525/