【发布时间】:2021-04-01 05:17:30
【问题描述】:
我想用 python 和 fontforge 创建一个 .ttf 字体,其中还包含表情符号。
我的字形是 .svg 文件,分辨率为 512x512 像素。
我已经尝试了以下方法:
import fontforge
blank = fontforge.font()
blank.save("blank.sfd")
font = fontforge.open("blank.sfd")
glyph = font.createMappedChar("\U0000263A")
glyph.importOutlines("263A.svg")
font.generate("font.ttf")
但是,我收到以下错误:
Traceback (most recent call last):
File "/home/adrian/dev/font/glyphs/test.py", line 5, in <module>
glyph = font.createMappedChar("\U0000263A")
ValueError: Glyph name, ☺️, not in current encoding
我查看了 thebblank.sfd 并且有一行:“编码:ISO8859-1”。 我尝试将“ISO8859-1”替换为“UTF-8”或“Univode”,但随后出现以下错误:
Internal Error: SFD file specifies too few slots for its encoding.
我该如何解决?
我首先尝试将表情符号字形用于字母“A”。然后创建字体并且它可以工作。 然而,它只是一个黑色的圆圈,脸、眼睛、微笑、腮红……无法辨认,因为它是黑色而不是黄色、橙色、白色、粉红色…… 在 blank.sfd 文件中写了一些关于层的内容:
Layer: 0 0 "Back" 1
Layer: 1 0 "Fore" 0
我想我必须对图层进行一些更改才能使颜色生效,但我不确定,如果是这种情况,我不知道如何以及如何为图层分配元素。 svg 字形。 顺便说一下,我使用 Inkscape 程序来创建 glyps。
我该如何解决这两件事?
【问题讨论】:
-
也许
fontforge.loadNamelist('glyphlist.txt')可以帮助glyphlist.txt -
你能解释一下吗?我应该在文件中放什么????
-
好的,我下载了 glyph list.txt 并做了 fontforge.loadNamelist("glyphlist.txt") 但还是同样的错误
-
嘿?我该怎么办?
标签: python encoding fonts emoji fontforge