首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从svg文件中添加一个字符到具有fontforge模块和python的字体中

如何从svg文件中添加一个字符到具有fontforge模块和python的字体中
EN

Stack Overflow用户
提问于 2022-10-15 12:25:26
回答 1查看 89关注 0票数 0

这是我的代码:

代码语言:javascript
运行
复制
import fontforge
font = fontforge.open('firacode.ttf')
shield = font.createChar(128737)
shield.importOutlines('shield.svg')
font.addLookup('shield', 'gsub_single', (), (('liga', (('DFLT', ('dflt')),)),))
font.addLookupSubtable('shield', 'shield')
font[128737].addPosSub('shield', "128737")
#font[128737] = shield
font.fullname = 'FiraCodeEmojii'
font.familyname = 'FiraCode'
font.fontname = 'FiraCodeEmojii'
font.uniqueid = 123456789
font.xuid = '123456789'
font.appendSFNTName('English (US)', 'SubFamily', "FiraCodeEmojii SemiBold Italic")
font.appendSFNTName('English (US)', 'Fullname', "FiraCodeEmojii SemiBold Italic")
font.appendSFNTName('English (US)', 'Preferred Family', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'Preferred Styles', "SemiBold Italic")
font.appendSFNTName('English (US)', 'Compatible Full', "FiraCodeEmojii SemiBold Italic")
font.appendSFNTName('English (US)', 'WWS Family', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'WWS Subfamily', "SemiBold Italic")
font.appendSFNTName('English (US)', 'Sample Text', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'Trademark', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'Manufacturer', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'Designer', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'Vendor URL', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'Designer URL', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'License', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'License URL', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'UniqueID', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'Preferred Family', "FiraCodeEmojii")
font.appendSFNTName('English (US)', 'Preferred Styles', "SemiBold Italic")
font.appendSFNTName('English (US)', 'Compatible Full', "FiraCodeEmojii SemiBold Italic")
font.reencode('unicode')
font.generate('testtfont.ttf')

为什么我不能将屏蔽svg添加到字体中?

当我安装新的ttf文件时,它找不到屏蔽。

我尝试将代码编码到utf8,我尝试生成更多关于屏蔽的数据,但是没有。

如何添加彩色svg作为字符与颜色?

代码和svg可以在这里获得:https://github.com/bussiere/testfiracode

问候

EN

回答 1

Stack Overflow用户

发布于 2022-10-18 18:02:11

我不知道您的问题是什么,但是在我的MacBook (通过自制安装了fontforge )和git存储库中的shield.svg和firacode.ttf文件上,只有以下几个最起码的代码

代码语言:javascript
运行
复制
import fontforge

font = fontforge.open('firacode.ttf')
index = 128737
shield = font.createChar(index, 'shield')
shield.importOutlines('shield.svg')
font.generate('testtfont.ttf')

在命令fontforge -script ./test.py中使用的字体testtfont.ttf以字形128737的形式生成带有屏蔽的字体testtfont.ttf(请参阅附图),尽管偏移量很差。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74079423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档