在Sun Java和OpenJDK之间生成像素相同的文本图像

时间:2010-05-05 18:11:50

标签: java fonts openjdk

我的发布脚本会生成版本号的图像,以免我手动进入MoinMoin wiki软件并为每个版本手动更改它。 不幸的是,由于每个平台的JVM上的字体看起来有点不同,结果是ugly

我使用Lucide Sans(每个Java系统附带)解决了字体不一致问题。 (从TTF文件加载字体是另一种选择。)结果要好得多,在Mac / Windows上生成完全相同的图像(http://img718.imageshack.us/img718/9089/winq.png),但在OpenJDK(http://img441.imageshack.us/img441/4247/openjdk.png)上略有不同。 / p>

我认为这是由OpenJDK使用不同的字体呈现系统(而不是不同的字体)引起的。有什么方法可以让我的所有三个目标平台(Sun Windows,Mac,OpenJDK Linux)生成看起来相同的文本图像?

[更新:丑陋的链接不再丑陋,因为我会手动纠正,直到找到自动解决方案]

1 个答案:

答案 0 :(得分:2)

OpenJDK使用系统的字体渲染库,因此您甚至可能无法在不同的Linux发行版或版本上获得相同的字体渲染。

此外,你甚至不能假设Lucida Sans可用,因为OpenJDK没有安装它,它只在Sun的JDK中。

唯一的解决方案是将自己的自定义OpenJDK部署到Windows和Mac平台,并确保它仍然使用Freetype而不是平台的字体渲染库。 但这不可行。