java - LibGDX - 如何保存生成的 FreeType 字体

标签 java android fonts libgdx

我对 lin LibGDX 的字体有疑问。我有三种不同的字体和参数:

parameter_score = new FreeTypeFontGenerator.FreeTypeFontParameter();
//Some parameters..
font_score = generator.generateFont(parameter_score);

parameter_Big = new FreeTypeFontGenerator.FreeTypeFontParameter();
//Some parameters..
font_Big = generator.generateFont(parameter_Big);

parameter_Small = new FreeTypeFontGenerator.FreeTypeFontParameter();
//Some parameters..
font_Small = generator.generateFont(parameter_Small);

而且生成字体很慢。当应用程序启动时,我看到黑屏大约 3 秒钟。我听说过方法,当我第一次生成字体时,然后将它保存到某个文件中,下次我午餐应用程序时,它将从文件中获取生成的字体。但我不知道如何保存和加载生成的字体。有人知道吗?

最佳答案

BitmapFontWriter

BitmapFontWriter 是 gdx-tools 中的一个类,它可以从 BitmapFontData 实例写入 BMFont 文件。这允许使用 FreeTypeFontGenerator 生成字体,然后写入字体文件和 PNG 文件。 BitmapFontWriter 的好处是它可以更容易地从脚本运行,并且可以利用 FreeTypeFontGenerator 的阴影和边框。否则,输出与 Hiero 非常相似,尽管如果不同的字符代码呈现相同的字形,Hiero 会避免多次写入字形图像。

用法可以是这样的:

new LwjglApplication(new ApplicationAdapter() {
    public void create () {
        FontInfo info = new FontInfo();
        info.padding = new Padding(1, 1, 1, 1);

        FreeTypeFontParameter param = new FreeTypeFontParameter();
        param.size = 13;
        param.gamma = 2f;
        param.shadowOffsetY = 1;
        param.renderCount = 3;
        param.shadowColor = new Color(0, 0, 0, 0.45f);
        param.characters = Hiero.EXTENDED_CHARS;
        param.packer = new PixmapPacker(512, 512, Format.RGBA8888, 2, false, new SkylineStrategy());

        FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.absolute("some-font.ttf"));
        FreeTypeBitmapFontData data = generator.generateData(param);

        BitmapFontWriter.writeFont(data, new String[] {"font.png"},
            Gdx.files.absolute("font.fnt"), info, 512, 512);
        BitmapFontWriter.writePixmaps(param.packer.getPages(), Gdx.files.absolute("imageDir"), name);

        System.exit(0);
    }
});

https://github.com/libgdx/libgdx/wiki/Hiero#bitmapfontwriter

关于java - LibGDX - 如何保存生成的 FreeType 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37574025/

相关文章:

java - Android - 尝试创建 'Save file first?"对话框

Android:虽然启用了 USB 调试,但无法安装 android 手机?

java - 从 Java Swing/图形导出到 HTML

java - 如何创建一个监听端口并接受多个客户端的 Java 服务器

java - Linux 'screen' 不会从磁盘读取

android - 谷歌地图不显示在手机上,但在模拟器中可见

html - Firefox 不再支持字体功能设置了吗?

android - 使用书法库的某些 Activity 的不同字体

java - Jersey 动态切换内容类型

java - Java中如何从字符串中提取单词