Python fontforge Emoji 编码和彩色字形

问题描述

我想用 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”。 我尝试用“UTF-8”或“Univode”替换“ISO8859-1”,但出现以下错误

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。

我该如何解决这两件事?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)