我正在寻找一种方法来调整以编程方式绘制的文本 macOS Mojave 中的文本笔画粗细,默认配置为无子像素抗锯齿。
您曾经能够使用私有 API 调整亚像素抗锯齿算法:CGContextSetFontSmoothingStyle
. 当子像素抗锯齿关闭时,API 什么也不做。虽然没有记录,但它被 webkit 在公开发布的代码中使用:https ://opensource.apple.com/source/WebCore/WebCore-351.9/platform/graphics/mac/FontMac.mm.auto.html
我知道这是可能的,因为 System Prefs>General 具有“在可用时使用字体平滑”,这在子像素抗锯齿关闭时确实会产生影响。但它似乎不会影响我用CTFontDrawGlyphs
or呈现的文本CGContextShowGlyphsAtPositions
。
从反汇编系统首选项看来,它似乎改变了AppleFontSmoothing
用户默认值(https://imgur.com/a/WrMKRWa)。在我的应用程序中更改该用户默认值似乎没有任何效果。