【发布时间】:2015-04-01 12:04:43
【问题描述】:
我需要从文件加载字体,我注意到 Font.createFont() 完成每个字体创建大约需要 5 秒。以下是我的资源管理课程的相关摘录:
try(InputStream in = getClass().getResourceAsStream(FONT_DIR + fontName + FONT_EXT))
{
long startTime = System.nanoTime();
Font awtFont = Font.createFont(Font.TRUETYPE_FONT, in); //<-- This operation takes about 5 seconds
System.out.println("Operation took: " + (System.nanoTime() - startTime) / 1000000);
awtFont = awtFont.deriveFont(fontSize);
result = new TrueTypeFont(awtFont, antiAlias);
}
我查看了类似的帖子,但找不到解决方案。所以我的问题是:有没有更快的方法从文件创建 java.awt.Font 或者我做错了什么?
感谢您的宝贵时间,祝您有美好的一天!
亚历克斯
【问题讨论】:
-
我对 Java 一无所知,但在 SpriteKit/Objective C 中遇到了类似的问题。结果我正在加载整个字体系列和该字体的所有变体。花了4-6秒。当我使用仅加载特定样式(例如常规或粗体)的不同方法时,需要 100 毫秒。
-
最初我认为延迟可能是由于系统中字体的可用性。但事实证明,无论字体是否存在于系统中,延迟都是一样的。它也是一种单一的常规字体,所以我不认为这是由于加载的字体数量造成的
标签: java performance fonts awt