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

时间:2017-03-29 12:35:11

标签: java intellij-idea java-2d antialiasing text-rendering

我在IntelliJ IDEA中遇到了反锯齿文本的问题。那个东西由于某种原因附带了自己版本的OpenJDK 8.无论如何......子像素别名是可以接受的暗背光文本:

enter image description here

但对于明亮的黑暗文本,伽玛是错误的:

enter image description here

这意味着在这个方案中,文本看起来好像是粗体和水平模糊/模糊。

是否可以指定系统属性或破解系统,否则将AA插值的伽玛值更改为更暗的颜色?我已经选择了一个非常精细的字体(FicaCode Light),在这台计算机上没有显示较少粗体的字体(带有Gnome 3,19000x1080显示屏的Linux)。

编辑我真的在寻找控制AA伽玛的方法。我没有使用过IDEA 2017.1 EAP,但已发布的版本已经修复了'固定'捆绑调整版本1.8.0_112,在gist评论中提到。如果我下载该版本,我会得到与上面两张图像完全相同的像素输出。这些是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

添加或删除最后一个属性只会产生零差异,也会从lcd更改为onoff没有效果。

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

enter image description here

显然,这里的AA被破坏了(1:1它看起来完全是彩色的)。所以我认为捆绑版本的子像素渲染基本上是正确的。只有在深色背景上使用错误的伽玛才能显示浅色文字。

修改:经过更多调查后,问题归结为:我可以在font.conf之间使用hintstyle hintslight的自定义hintmedium文件,{{1 }和hintfull。对于轻微提示,字体在宽高比方面看起来平衡,但抗锯齿具有错误的伽玛,因此字体线条很粗(一切看起来都是粗体)。对于中等或完全提示,字体显得更细,更清晰,但现在宽高比被打破,字体太宽。

3 个答案:

答案 0 :(得分:1)

FWIW,虽然放大当前渲染(IC 2020.3)看起来与原始屏幕截图相似:

enter image description here

我不再觉得这看起来太大胆或模糊。也许是字体的细微变化(现在使用 JetBrains Mono)。

答案 1 :(得分:0)

由于您正在运行Linux,为什么不下载没有JDK的版本:https://www.jetbrains.com/idea/download/download-thanks.html?platform=linuxWithoutJDK

答案 2 :(得分:0)

您说普通的openJDK以您希望他工作的方式运作,对吗?

如果为true,为什么不更改JDK IntelliJ的用法? 我认为它是平台SDK的首选。