java Force Java2D亚像素抗锯齿
我正在使用Java2D生成带有文本的图像。在运行Ubuntu的服务器上,这些字体的抗锯齿效果非常糟糕,但在OSX和Ubuntu工作站上却呈现得非常漂亮。我猜这两个Ubuntu安装的区别是xwindows和没有xwindows?大概无论如何,我猜我的渲染提示被忽略了,服务器上没有使用java 1.6亚像素抗锯齿算法
我的渲染提示如下。我正在优化垂直放置的显示器
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VRGB);
我直接从一个ttf文件创建字体,这确实改善了渲染效果。我不认为这个字体是安装在机器上的,所以它默认为其他字体。现在字体是正确的,但抗锯齿仍处于关闭状态。它看起来确实比我完全关闭抗锯齿并生成图像时更好,所以我认为它正在做一些事情,但它看起来并不那么好
我试过Java属性
-Dawt.useSystemAAFontSettings=lcd
但这并没有改变任何事情
有什么建议吗?谢谢
# 1 楼答案
你已经试过这样的方法了吗:
在
paintComponent()
中接收的Graphics
对象设置为不了解桌面属性(监视器类型)的默认值。查询desktophints
工具箱将从底层操作系统返回有关所用硬件的信息。比较一下59页的“肮脏的富客户”