Font.createFont +抗锯齿

发布于 2024-10-19 17:37:28 字数 406 浏览 1 评论 0原文

我已将 .ttf 字体捆绑在 JAR 存档中,并使用以下例程加载该字体:

[snip]
is = IdeUiUtil.class.getResourceAsStream(fontName);
font = Font.createFont(Font.TRUETYPE_FONT, is);
font = font.deriveFont(style, size);
[snip]

更新: 该字体用于 TitledBorder 的标题中,并且将最终也可以在几个 JLabels 中使用。

问题是,在 Window 平台上它看起来都是锯齿状的。在Linux 上,它可以很好地消除锯齿。我需要做什么才能在 Windows 上也消除锯齿?

I have bundled a .ttf font inside a JAR archive which I load with a routine along this lines:

[snip]
is = IdeUiUtil.class.getResourceAsStream(fontName);
font = Font.createFont(Font.TRUETYPE_FONT, is);
font = font.deriveFont(style, size);
[snip]

UPDATE: The font is used in the title of a TitledBorder, and will eventually also be used in a couple of JLabels.

The problem is, that on a Window platform it looks all jaggy. On linux, it's nicely anti-aliased. What do I have to do so it's anti-aliased on windows as well?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回首观望 2024-10-26 17:37:28

如果您使用 Graphics 进行绘图,则应该使用:

Graphics2D g2d = (Graphics2D)getGraphics();
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

...但这并不特定于捆绑字体:它适用于与 Graphics 对象一起使用的所有字体。

有一个 hack 可以将此应用到面板,但我不确定它是否是最新的。

If you are drawing with Graphics, you should use:

Graphics2D g2d = (Graphics2D)getGraphics();
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

... but this is not specific to bundling a font : it applies to all fonts used with the Graphics object.

There is a hack to apply this to a panel, but I'm not sure it's up to date.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文