设置LCD Gamma /对比度(IntelliJ IDEA,JDK 8)

2019年8月2日 109点热度 0条评论

我在IntelliJ IDEA中使用抗锯齿文字遇到麻烦。出于某种原因,它附带了自己的OpenJDK 8版本。无论如何...子像素混叠对于明暗文本是可接受的:

但是,对于明暗文本, Gamma 是错误的:

这意味着在此方案中,文本看起来好像是黑体字且水平涂抹/模糊。

是否可以指定系统属性或修改系统,否则将AA插值的 Gamma 值更改为较深的颜色?我已经选择了非常好的字体(FicaCode Light),在这台计算机上根本没有显示粗体的字体(Linux和Gnome 3,1920x1080显示屏)。

编辑:我真的在寻找一种控制AA Gamma 的方法。我没有使用过IDEA 2017.1 EAP,但是发布的版本已经附带了“固定” bundle 调整后的版本1.8.0_112,要点注释中提到了该版本。如果下载该版本,则会得到与上述两个图像完全相同的像素输出。这些是idea64.jvmoptions:

自定义IntelliJ IDEA VM选项

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dawt.useSystemAAFontSettings=lcd
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine
-Djava2d.font.loadFontConf=false

添加或删除last属性只会使差异为零,从
lcd更改为
on
off的效果也为零。

将这些图片与我通过Debian安装的常规OpenJDK 1.8.0_121进行比较:

显然,这里的AA已损坏(在1:1时,它看起来是完全彩色的)。因此,我认为 bundle 版本的亚像素渲染基本上是正确的。只有它对深色背景上的浅色文字使用了错误的 Gamma 。

编辑:经过更多调查,问题归结为:我可以在
font.conf
hintstyle
hintslight之间使用带有
hintmedium的自定义
hintfull文件。稍稍暗示一下,字体在长宽比方面看起来很平衡,但是抗锯齿的 Gamma 值错误,因此字体线条很粗(所有字体看起来都是粗体)。对于中等或完全提示,字体显得更细线和锐利,但是现在长宽比被破坏了,字体太宽了。

解决方案如下:

您说正常的openJDK以您希望他工作的方式工作,对吗?
如果为true,为什么不更改JDK的IntelliJ使用?
我相信它是平台SDK的首选项。