2011-02-15 68 views
1

我在与图像的旋转问题的Java Swing:Graphics2D的旋转产生恶心边缘

Graphics2D g2 = (Graphics2D) g; 
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); 
AffineTransform at = new AffineTransform(); 
at.setToIdentity(); 
at.translate(x, y); 
at.rotate(Math.toRadians(angle)); 
g2.transform(at); 
image.paintIcon(c, g2); 

我使用此代码画前旋转的图片(图片是我为了帮助我的一类处理图片的加载。

不幸的是,我在与图像的该变得非常糟糕的边缘问题(参见图片) enter image description here

任何想法如何,我可以提高绘制的质量?

jason

回答

5

如何尝试反锯齿边缘和双线性变换?你可以看到一个例子here。同时检查您的图像类型,该示例使用BufferedImage

g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, 
        RenderingHints.VALUE_INTERPOLATION_BILINEAR); 
1

从我记得,最优质的渲染将通过开启抗锯齿(你已经做了),设置插值VALUE_INTERPOLATION_BICUBIC和设置渲染VALUE_RENDER_QUALITY驱动。