2017-03-13 29 views
1

如何绘制一个Image反锯齿?我当前的代码如下所示:CN1 Graphics.drawImage旋转后出现锯齿效应

boolean wasAAed = g.isAntiAliased(); 
    g.setAntiAliased(true); 

    g.rotate(rotRad, originX, originY); 
    g.drawImage(img, x, y, width, height); 

    g.setAntiAliased(wasAAed); 

但旋转图像时要绘制产生锯齿现象......

default drawn image rotated drawn image

只是与libgdx的图纸(如图示基于比较我对已接受的答案发表评论):

libgdx drawing with linear texture filtering

回答

0

消除锯齿对于图像不起作用。在设备上概念性地看到图像旋转时出现伪像,因此对细节进行高效旋转是不切实际的。这不像旋转算法那样抗锯齿。

您正在旋转的图像非常简单,您可以使用时钟演示中的代码生成带有矢量命令的图像,这些图像在启用抗锯齿功能时可以平滑旋转。

+0

嗯,有没有可能做这样的旋转?我必须通过本地接口还是Web视图来实现它?是的,图像很简单,但我只是用它来进行测试。我想旋转更复杂的图像。 – Osman

+0

原生不能做到这一点,因为这是一个概念问题。图像只是像素,当你旋转它们时,数学运算非常复杂。硬件旋转算法不那么聪明,并且使用相对简单的旋转算法。即使在Photoshop中功能强大的桌面上,尝试旋转图像也会在拖动时发现像素化,只有当您接受更改时,才会注意到Photoshop需要一秒钟,直到像素消失。 –

+0

好的我看到..作为一个libgdx的家伙,我错过了在这种情况下的cn1反锯齿(我知道,游戏开发框架需要另一个处理纹理绘图..我不是想让cn1看起来很糟糕: ),因为它相当于非游戏应用)。我想我需要考虑解决方法。 – Osman