java-如何禁用子像素渲染?

我最近问了一个有关JavaFX 8中的颜色不匹配的问题:Color Mismatch In JavaFX8 Labels这使我开始走上正确的道路,但我不知道如何禁用子像素渲染.我尝试了-fx-font-smoothing-type:灰色和-fx-font-smoothing-type:lcd,但没有明显的效果.我已经对此主题进行了研究,但没有提出任何建议.

解决方法:

您问题的直接答案是可以设置系统属性标志.

-Dprism.lcdtext=false

这应该关闭子像素渲染.该标志不是平台的正式文件或受支持的部分,因此将来可能会更改或删除.

有关setting系统属性的信息.

亚像素渲染是一个非常微妙的效果,因此要真正看到差异,您可能需要对应用程序进行屏幕截图,并使用MS Paint等工具并放大像素以查看其颜色变化的差异.

还要注意,在某些环境(例如OS X)上,JavaFX的默认配置是禁用子像素渲染,因为这是其余OS通常渲染文本的方式.通常,JavaFX通常会尝试非常接近地匹配默认的OS文本呈现.

调整字体渲染提示令人惊讶地复杂,并且与合理的科学相去甚远.要知道,即使您关闭了亚像素渲染,文本仍将具有抗锯齿和其他调整功能.例如,在Windows 7和Java 8下,JavaFX将使用特定于操作系统的文本呈现系统,例如ClearType,因此在操作系统中对字体呈现配置进行调整可以更改在JavaFX中呈现字体的方式.

上一篇:javascript-如何迭代易于区分的颜色? (包括jsfiddle)


下一篇:如何在Android的警报对话框中的短信中应用颜色?