Python 反转图示符:位图>;SVG通过autotrace>;fontforge字形

Python 反转图示符:位图>;SVG通过autotrace>;fontforge字形,python,fonts,svg,invert,fontforge,Python,Fonts,Svg,Invert,Fontforge,我正在尝试通过以下方式创建字体/字形: 拍摄位图图像 使用autotrace创建SVG(在Linux上) 使用PythonFontForge(glyph.importOutlines(svgfile))将大纲作为glyph导入 这可以很好地工作,但得到的字形是反向的(请参见图像)。你知道如何防止这种情况,如何反转SVG或glyph,或者诸如此类的东西吗 源位图: 自动跟踪SVG: 结果字体: 您可以尝试反转路径,但不确定fontforge中是否有允许您这样做的选项,但您可以使用inksc

我正在尝试通过以下方式创建字体/字形:

  • 拍摄位图图像
  • 使用autotrace创建SVG(在Linux上)
  • 使用PythonFontForge(glyph.importOutlines(svgfile))将大纲作为glyph导入
这可以很好地工作,但得到的字形是反向的(请参见图像)。你知道如何防止这种情况,如何反转SVG或glyph,或者诸如此类的东西吗

源位图:

自动跟踪SVG:

结果字体:

您可以尝试反转路径,但不确定fontforge中是否有允许您这样做的选项,但您可以使用inkscape(路径>反转)来执行此操作。

仅通过使用而不是使用自动追踪来解决此问题

以下步骤供参考:

将位图转换为svg(linux命令行):

使用svg作为图示符(python):

就这样,在网站上使用的结果如下:

css:

html:

A
A.

您的图示符似乎是手绘的。如果你想用十数个或几百个字形来制作一个完整的TTF字体,那么你可以考虑我用它来生成手绘字体。它使用一个模板,您可以在该模板上绘制(或粘贴)字母,以便它们位于正确的垂直位置。水平位置(和间距)至少在[A-Za-z]中自动计算(将来也可能是其他字母)


但我很欣赏它,因为它使用免费或开源工具,而且你几乎可以完全控制一切(例如间距)。potrace和fontforge最棒的一点是,你可以随时使用,也可以在线创建字体!Potrace是移植的(它可以工作,我已经测试过了),现在也在JS(or)中,所以它还可以创建一个实时预览窗口,显示当Potrace参数改变时矢量化结果是如何改变的。

如果有人想用Autotrace做这件事,这是因为具有白色背景的图像的autotrace SVG的第一个子级是定义白色背景的路径。我通过编写一个小程序解决了这个问题,该程序在导入之前删除了SVG的第一个子项,但您也可以通过编辑字形来删除FontForge中的矩形。

谢谢erik,我尝试了您的建议,不幸的是,它似乎不起作用。。。
potrace -s sourceimg.bmp
import fontforge
font = fontforge.open('blank.sfd')
glyph = font.createMappedChar('A')
glyph.importOutlines('sourceimg.svg')
font.generate('testfont.ttf')
@font-face
{
font-family: testfont;
src: url('testfont.ttf');
}
<span style="font-family:testfont; font-weight:normal; color:green;">A</span>
<span style="font-family:testfont; font-weight:bold; color:green;">A</span>