Libgdx 将.ttf文件转换为.png

Libgdx 将.ttf文件转换为.png,libgdx,sprite,Libgdx,Sprite,有没有办法将TTF转换成PNG文件?或者使用任何其他方法在LIBGDX框架中使用TTF文件创建Sprite?有任何应用程序可供使用吗?ttf是一种真正的字体。它不是一张图片,而是一个矢量字符集。你不能简单地用工具把它转换成图片 如果要查看/操作ttf文件,可以使用ttf编辑工具,例如fontforge()。ttf是一种真正的字体。它不是一张图片,而是一个矢量字符集。你不能简单地用工具把它转换成图片 如果要查看/操作ttf文件,可以在运行之前使用ttf编辑工具,例如fontforge()。 Lib

有没有办法将TTF转换成PNG文件?或者使用任何其他方法在LIBGDX框架中使用TTF文件创建Sprite?有任何应用程序可供使用吗?

ttf是一种真正的字体。它不是一张图片,而是一个矢量字符集。你不能简单地用工具把它转换成图片


如果要查看/操作ttf文件,可以使用ttf编辑工具,例如fontforge()。

ttf是一种真正的字体。它不是一张图片,而是一个矢量字符集。你不能简单地用工具把它转换成图片

如果要查看/操作ttf文件,可以在运行之前使用ttf编辑工具,例如fontforge()。

LibGDX在
gdxtools
项目中有一个名为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
文档

运行时 Hiero的一个缺点是位图字体不能很好地缩放,所以它们在不同的屏幕分辨率下看起来很糟糕

请看一个相关问题:

一种解决方案是使用libgdx的FreeType扩展,如下所述。这允许您从.ttf字体动态生成位图字体。通常,一旦知道目标分辨率,您会在启动时执行此操作

我个人没有用过,但它似乎值得一看。它看起来也很简单-链接答案中的示例代码有5行长。

在运行之前 LibGDX在
gdxtools
项目中有一个名为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
文档

运行时 Hiero的一个缺点是位图字体不能很好地缩放,所以它们在不同的屏幕分辨率下看起来很糟糕

请看一个相关问题:

一种解决方案是使用libgdx的FreeType扩展,如下所述。这允许您从.ttf字体动态生成位图字体。通常,一旦知道目标分辨率,您会在启动时执行此操作


我个人没有用过,但它似乎值得一看。它看起来也很简单-链接答案中的示例代码有5行长。

最后,我得到了我也面临的相同问题(TTF到PNG)的解决方案

按照以下步骤操作

1。将TTF转换为SVG

使用转换工具将自定义或下载的TTF文件转换为SVG文件

2。将SVG转换为PNG/PDF/TTF:

转到,在左上角,将有按钮来导入图标,单击并上传转换后的SVG文件

在底部栏中,将有一个选项“生成SVG&More”,如下图所示,单击它

接下来,单击“下载”选项附近的设置档图标以覆盖大小、输出格式(PDF、PNG等),然后关闭设置


现在点击下载,将输出文件放入一个zip文件中

最后,我也遇到了同样的问题(TTF到PNG)的解决方案

按照以下步骤操作

1。将TTF转换为SVG

使用转换工具将自定义或下载的TTF文件转换为SVG文件

2。将SVG转换为PNG/PDF/TTF:

转到,在左上角,将有按钮来导入图标,单击并上传转换后的SVG文件

在底部栏中,将有一个选项“生成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并确保它位于您的环境路径中。在安装中包括“遗留”命令。

这可能是一个老问题,但我发现以下批处理文件适用于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并确保它位于您的环境路径中。在安装中包括“遗留”命令。

Python3 我试着描述一下,但你可以简化工作,按照你的需要

要求:PIL(枕头)
#pip安装枕
从PIL导入图像、ImageFont、ImageDraw
#使用truetype字体(.ttf)
#来自fonts.google.com的字体文件(https://fonts.google.com/specimen/Courier+Prime(查询=快递)
font\u path=“font/Courier Prime/”
font\u name=“CourierTime