如果我有一个位图字体,例如;
fonttexture = new Texture(Gdx.files.internal("data/fonttest.png"), true);
font= new BitmapFont(Gdx.files.internal("data/fonttest.fnt"),
new TextureRegion(fonttexture ), true);
是否可以检索或推断相关 png 纹理文件上使用的自然字体大小?*.fnt 文件本身在第一行指定了这一点;
info face="Calibri Light" size=32 bold=0 italic=0 charset=""
它是我在代码中追求的32 。我在 BitmapFonts 类上看不到直接获取它的方法,但是可以获取各种其他与高度相关的属性。
我尝试从这些中重新创建大小,但运气不佳。
float baseToAssent = font.getCapHeight()+font.getAscent();
float baseToDecent = -font.getDescent();Decent);
float fontHeight = baseToAssent+baseToDecent; //too small, like 11 not 32
不是字体设计师?fontophile?...嗯...平面设计师,我可能把这些碎片拼错了,或者只是缺少一个。
在任何一种情况下,计算 fonttest.png 中使用的字体大小的任何方法都会有所帮助。
谢谢
用例;
我手动使用带有距离场着色器的纹理。了解纹理的自然字体大小有助于准确地将文本和行高缩放到任何请求的字体大小,而无需调整图像大小并因此降低质量。