禁用字体的抗锯齿功能

时间:2010-03-11 06:24:33

标签: iphone pixel antialiasing

我正在为iPhone编写一个复古型游戏,需要在屏幕上渲染像素样式字体。但是,当我在模拟器中运行它时,它看起来很漂亮,但是当我在设备上运行它时,它看起来不那么好。有什么办法可以禁用字体的抗锯齿功能吗?我已经尝试过了:

CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetShouldSmoothFonts(c, FALSE);
CGContextSetShouldAntialias(c, FALSE);
CGContextSetAllowsAntialiasing(c, FALSE);

另外,我正在使用http://github.com/zynga/FontLabel/tree/master

中的字体渲染类

2 个答案:

答案 0 :(得分:4)

想出来,当我旋转我的UIView以横向模式绘制时,我没有使用足够数字的PI(3.14159 vs 3.14159265),并修复了它。 ^^

答案 1 :(得分:1)

确保层次结构中的视图和/或图层与文本的绘制位置对齐,以与整数像素边界((10.0,20.0)等对齐)。这可能会导致绘制文本模糊。

另外,看看FontLabel的代码,我不认为考虑到Quartz绘图与半像素坐标对齐的事实(你需要绘制(10.5,20.5)来获得锐利的特征,因为例)。我不太确定在哪里纠正这个问题,但您可以尝试将point中的-drawTextInRect:移动X和Y中的半个像素,看看是否会清除字体图。