【发布时间】:2019-04-30 09:11:35
【问题描述】:
我必须在我的应用程序中使用 Noto Sans CJK 字体。 但是当我调用下面的方法时,初始化需要10秒。
Font font = //Noto Sans CJK font
JComponent.getFontMetrics(An instance of Noto Sans CJK font);
我可以解决这个延迟问题吗?如果方法可以帮助解决这个问题,代码可能会很复杂(就像实现 FontMetrics,我不知道如何)。
请不要推荐我将 otf 字体转换为 ttf 字体。我无法转换它,因为字体工具说它是字母字体,甚至无法加载 unicode 字形。另外我必须在应用程序中使用另一种 otf 字体。而且我不会使用已经转换的版本。
如果你能用 Java 代码解决这个问题,我想用这个方法。
如果任何 unicode otf 字体可以转换为 ttf,我将使用该工具(但必须是免费的,不得试用。完全免费)。请告诉我如何将otf转换为ttf。我试过网站和fontforge。两者都返回 7KB 字体,即使这个字体是 7MB。
我英语不好。对不起。
【问题讨论】:
-
你使用的是什么 Java 版本?
-
我使用的是 Java 1.8.0_192。我不能使用较新的版本,因为我的目标是 32 位系统。当然,我也不喜欢 32 位,
-
你能显示minimal reproducible example吗?不仅是为了帮助我们,也是为了帮助您。
-
字体 baseFont = Font.createFont(Font.TRUETYPE_FONT, getClass().getResourceAsStream("/resources/Noto.otf"));字体 noto = baseFont.deriveFont(Font.PLAIN, 10); System.out.println(noto);
-
这与我的第二个示例类似(除了在此 sn-p 中您不收集指标)。 a) 你有什么硬件规格(CPU、RAM、HDD/SDD、操作系统)? b) 你从哪里得到
Noto.otf?您是否尝试过我在示例中提到的版本?如果是这样,您能注意到其中的不同吗?