【发布时间】:2014-05-05 06:50:26
【问题描述】:
有没有办法将 TTF 转换为 PNG 文件?或者在 LIBGDX 框架中使用 TTF 文件创建 Sprite 的任何其他方法?有没有可用的应用程序?
【问题讨论】:
有没有办法将 TTF 转换为 PNG 文件?或者在 LIBGDX 框架中使用 TTF 文件创建 Sprite 的任何其他方法?有没有可用的应用程序?
【问题讨论】:
ttf 是一种真正的字体。它不是图片,而是矢量字符集。不能简单地用工具把它转成图片。
如果您想查看/操作 ttf 文件,您可以使用 ttf 编辑工具,例如 fontforge (http://fontforge.sourceforge.net)。
【讨论】:
LibGDX 在gdx-toolsproject 中有一个名为 Hiero 的内置工具。只需将该项目作为 java 应用程序运行,当询问要运行哪个类时,选择该类。它允许您获取一个 .ttf 文件并将其渲染为您需要的字符(以像素给定的大小),此外它还生成一个文件,其中包含有关每个字符在纹理上的位置的信息。在程序中,初始化和使用非常简单:
BitmapFont font = new BitmapFont(Gdx.files.internal("data/font/font.fnt"));
...
font.draw(spriteBatch, "Text to output", coordX, coordY);
(font.fnt是包含纹理位置和其他相关信息的文件,也指默认创建在同一文件夹中的.png。)
您可以查看BitmapFont 文档here。
Hiero 的一个缺点是位图字体不能很好地缩放,因此它们在不同的屏幕分辨率上看起来很糟糕。
查看this answer 的相关问题:
一种解决方案是使用 libgdx 的 FreeType 扩展,如 here 所述。这允许您从 .ttf 字体动态生成位图字体。通常,一旦您知道目标分辨率,您会在启动时执行此操作。
我没有亲自使用过它,但它似乎值得一试。它看起来也很简单 - 链接答案中的示例代码长 5 行。
【讨论】:
我终于找到了我也遇到过的相同问题(TTF 到 PNG)的解决方案。
按照以下步骤,
1.将 TTF 转换为 SVG
使用TTF to SVG 转换工具将您自定义或下载的 TTF 文件转换为 SVG 文件
2。将 SVG 转换为 PNG/PDF/TTF:
转到IcoMoon,左上角会有导入图标按钮,点击并上传转换后的 SVG文件。
在底部栏中,将有一个选项“Generate SVG & More”,如下图所示,点击它
接下来,单击“下载”选项附近的设置齿轮图标以覆盖大小、输出格式(PDF、PNG 等),然后关闭设置
现在点击下载将输出保存到单个 zip 文件中!!!
【讨论】:
这可能是一个老问题,但我发现以下批处理文件适用于 ImageMagick 7:
@ECHO OFF
set f=wingding.TTF
set ps=800
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 并确保它位于您的环境路径中。在您的安装中包含“旧版”命令。
【讨论】: