0

我正在使用 ios 中的 cgpdf 和 catiledlayer 开发 pdf 渲染器,一切都很好,除了某些字体,就好像矢量要靠在一起,我得到一种模糊的外观,就像我没有戴眼镜一样。我正在研究并且希望得到一些帮助的解决方案是使边缘附近的灰色像素变成黑色。我猜这可以通过 CGContextSet"Whatever"() 方法实现。这是一张照片来说明。


目前渲染为... 当前的


Adobe 阅读器应用程序呈现为...

土坯

并且看起来非常锋利,所以如果你知道它使用的方法(或如何获得相似),那么我会欣喜若狂


但我试图做的是将所有灰色像素变成黑色。就像是... 美好的


我再次使用 cgcontext setter 方法并注意到更改,但并非所有文档都清楚说明每个方法的作用,因此感谢您对解决方案的任何解释或洞察。提前致谢。

4

1 回答 1

1

看起来 Adob​​e 的渲染器正在将字形的底部与整个像素对齐,但您的不是。

Quartz-Dev 邮件列表中的这两条消息()建议您尝试使用以下函数更改亚像素定位和亚像素量化的设置:

CGContextSetAllowsFontSubpixelPositioning
CGContextSetShouldSubpixelPositionFonts
CGContextSetAllowsFontSubpixelQuantization
CGContextSetShouldSubpixelQuantizeFonts

要么完全关闭亚像素定位,要么同时开启亚像素定位和亚像素量化。你必须进行实验。

正如您所展示的,后处理 Quartz 的渲染不太可能看起来非常好。

于 2012-06-09T05:32:38.087 回答