【问题标题】:Inverted glyph: bitmap > SVG via autotrace > glyph via fontforge反转字形:位图 > 通过自动跟踪的 SVG > 通过 fontforge 的字形
【发布时间】:2012-09-24 16:09:32
【问题描述】:

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

  • 拍摄位图图像
  • 使用自动跟踪创建 SVG(在 Linux 上)
  • 使用 python-fontforge (glyph.importOutlines(svgfile) ) 将轮廓作为字形导入

这很好用除了生成的字形倒置(见图)。知道如何防止这种情况,如何反转 SVG 或字形,或类似的事情吗?

源位图:

自动跟踪 SVG:

生成的字体:

【问题讨论】:

    标签: python svg fonts fontforge


    【解决方案1】:

    通过使用potrace 而不是自动跟踪解决了这个问题。

    供参考,步骤如下:

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

    potrace -s sourceimg.bmp
    

    使用 svg 作为字形(python):

    import fontforge
    font = fontforge.open('blank.sfd')
    glyph = font.createMappedChar('A')
    glyph.importOutlines('sourceimg.svg')
    font.generate('testfont.ttf')
    

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

    css:

    @font-face
    {
    font-family: testfont;
    src: url('testfont.ttf');
    }
    

    html:

    <span style="font-family:testfont; font-weight:normal; color:green;">A</span>
    <span style="font-family:testfont; font-weight:bold; color:green;">A</span>
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢 erik,我已经尝试过您的建议,不幸的是,它似乎并没有成功...
      【解决方案3】:

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

      但我很欣赏your solution,因为它使用免费或开源工具,您几乎可以完全控制所有内容(例如间距)。 potrace 和 fontforge 最棒的地方在于,您可以即时完成或提供在线字体创建服务! Potrace 移植到 AS3(它可以工作,我测试过),现在也移植到 JS(https://github.com/antimatter15/js-potracehttps://github.com/dunvi/potrace-js),所以它也应该可以制作一个实时预览窗口,显示当 potrace 时矢量化结果如何变化参数变化。

      【讨论】:

        【解决方案4】:

        如果有人对使用 Autotrace 执行此操作感到好奇,这是因为具有白色背景的图像的自动跟踪 SVG 的第一个子元素是定义白色背景的路径。我通过编写一个小程序解决了这个问题,该程序在导入之前删除了 SVG 的第一个子元素,但您也可以通过编辑字形删除 FontForge 中的矩形。

        【讨论】:

          猜你喜欢
          • 2014-01-24
          • 2019-09-06
          • 1970-01-01
          • 1970-01-01
          • 2017-03-16
          • 2018-06-02
          • 2015-03-28
          • 2010-09-18
          • 2016-10-11
          相关资源
          最近更新 更多