【发布时间】:2016-05-27 23:46:01
【问题描述】:
使用 PIL(ImageFont、ImageDraw 等)渲染文本时,如果字体缺少特定字符的字形,它只会跳过该字符。我在文档中没有看到任何指定后备字体的机制。是否有一个行之有效的方法来使用后备字体来解决 PIL 中丢失的字形?
【问题讨论】:
-
更糟的是,它给我画了一个豆腐字! =(
标签: python fonts python-imaging-library pillow
使用 PIL(ImageFont、ImageDraw 等)渲染文本时,如果字体缺少特定字符的字形,它只会跳过该字符。我在文档中没有看到任何指定后备字体的机制。是否有一个行之有效的方法来使用后备字体来解决 PIL 中丢失的字形?
【问题讨论】:
标签: python fonts python-imaging-library pillow
我不知道如何做到这一点,但我确实找到了解决方法。我使用 FontForge 填充主字体中缺少的字形,并使用另一种字体的备用字形。如本答案所述:https://superuser.com/questions/490922/merging-two-font-into-one
唯一的问题是我运行的是 OS X 10.11.3,而当前的 FontForge 稳定版本在该操作系统上死掉了。所以我不得不从源代码构建 FontForge。我按照此页面上的“自制”说明进行了操作: https://github.com/fontforge/fontforge/blob/master/INSTALL-git.md
【讨论】:
ImageFont 和ImageDraw——您的示例函数——似乎都使用bitmap 字体,而不是“真正的”轮廓字体(OpenType 或 TTF)。这是一个有意识的决定吗? (提示您使用 FontForge 调整字体 - 您确实创建了新的 bitmap 字体吗?)