用Java渲染Sinhala unicode字体

Thu*_*tha 6 java unicode fonts windows-7

我正在制作一个unicode僧伽罗语 - 英语翻译.当我打印字体大小<100的Sinhala unicode字母时,字母未正确呈现.但是当我使用字体大小> 100时,所有字母都可以流畅地呈现.我找不到为什么会这样.另一方面,所有Sinhala unicode字体都是这样做的,它不是我使用的字体的错误.这里显示了一个例子.

请帮我.

Aar*_*lla 0

我不知道 Java 在 Windows 7 上使用自己的字体渲染。所以这应该是一个 Windows 错误,但如果是这样的话,您会在所有 Windows 应用程序中看到这个问题 - 但您只在 Java 中看到它。

您可能想尝试Java 2D API。例如,使用 140px 渲染字体,然后缩放Graphics2D0.5 以获得 70px 字体。

[旧答案]

你没有说是哪个操作系统,但我猜这是在 Linux 上。如果是这种情况,那么可能是因为FreeType中的“字体提示” 。

基本上,如果字体变得“太小”而无法渲染,则真实类型文件可以包含“渲染提示”。在您的示例中,您可以看到大字体具有平滑的边缘,但小示例的边缘更加方正。你可以看到像素;抗锯齿应该可以防止这种情况发生。

所以我的猜测是您是字体提示专利的受害者。该专利已于去年到期。尝试为您的系统找到更新版本的“freetype”。