如何将 TTF 转换为单独的 PNG 字符图像?

如何将 TTF 转换为单独的 PNG 字符图像?

我想.PNG为字体文件中的每个字形生成一个图像.TTF。我该怎么做?

答案1

您可以使用 PythonFontForge,它有一个 Python 2.7 解释器。

在 Windows 上:安装 FontForge 后,找到安装路径中的“bin”并将其添加到 Windows 系统路径,在我的情况下它是:

c:\Program Files (x86)\FontForgeBuilds\bin\

该目录包含ffpython.exe以下内容,因此将其添加到 PATH 后,您可以直接.py在控制台中运行脚本。

> ffpython myscript.py

导出全部字形,你可以使用这个简单的脚本:

import fontforge
F = fontforge.open("perpetua.ttf")
for name in F:
    filename = name + ".png"
    # print name
    F[name].export(filename)
    # F[name].export(filename, 600)     # set height to 600 pixels

文档:
http://fontforge.github.io/python.html#Glyph
http://fontforge.github.io/python.html#Font

答案2

fontforge 已经切换到 python 脚本语言。创建文件 exportGlyphs.py:

import os
from fontforge import *

font = open(os.sys.argv[1])
for glyph in font:
    if font[glyph].isWorthOutputting():
        font[glyph].export(font[glyph].glyphname + ".png")

然后运行 ​​fontforge:

fontforge -script exportGlyphs.py YOURFONT.ttf

答对了。每个字形都有一大堆 .png 文件。

答案3

这可能是一个老问题,但我发现以下批处理文件适用于 ImageMagick 7:

@ECHO OFF
set f=wingding.TTF
set ps=400
set bg=white
set ext=png
set s=600x600
set alpha=A B C D E F G H I J K L M N O P Q R S T U V W Z Y Z
set num=0 1 2 3 4 5 6 7 8 9
For %%X in (%alpha% %num%) do (
convert -font %f% -pointsize %ps% -size %s% -background %bg% label:%%X 
%%X.%ext%)
pause
exit

注意:此转换仅适用于有限的字体字符选择。它适用于所有大写字母。只需安装 ImageMagick 并确保它位于您的环境路径中。在您的安装中包含“legacy”命令。

答案4

这个在线应用程序可以非常轻松和直观地完成这一点 - 尽管它不是开源的 :( 它可以帮助从给定的 ttf 快速生成透明字形 png 以进行快速测试。以及所有字形尺寸和特征的清单:http://kvazars.com/littera/

相关内容