gpt4 book ai didi

java - 一种使用类似 Freetype 的字体渲染获取 Linux JDK tarball 的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:25 37 4
gpt4 key购买 nike

我想知道一种制作独立(tarball)Linux JDK/JRE 的方法,它具有与 Freetype project 提供的类似的高字体渲染质量。 .到目前为止,之后:

-- 尝试适用于 Ubuntu 的不同版本的 JDK:

java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-3~14.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)

enter image description here

(#字符的形状可能是一些不相关的字体问题,我不知道)

-- 尝试了多种不同的字体和大小,但看起来正交;

-- 切换LCD渲染和抗锯齿等多个开关:

enter image description here

-- 遵循诸如“将来自不同存储库的一些补丁包和脚本应用到你的 Ubuntu 衍生产品”之类的方法,(这对我不起作用,至少在一段时间之前,它在发行版级别上工作并提供了一个固定版本jdk的)

-- 放弃 Swing 并尝试在 JavaFX 中制作 GUI,

我开始相信我不会得到与 Freetype 相当的字体渲染。然后我偶然发现了 Android Studio,它是三个 Java 和 Linux 以及一个类似 Freetype 的字体渲染:

enter image description here

事实证明,这一切都归结为它使用的 JRE:

openjdk version "1.8.0_76-release"
OpenJDK Runtime Environment (build 1.8.0_76-release-b03)
OpenJDK 64-Bit Server VM (build 25.76-b03, mixed mode)

我尝试从启用了 FreeType 的源代码编译 OpenJDK:

sudo apt-get install libfreetype6-dev libasound2-dev libasound2-dev libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
mkdir freetype && ln -s /usr/include/freetype2 freetype/include && ln -s /usr/lib/x86_64-linux-gnu/ freetype/lib
sudo apt-get install ccache
cd YourOpenJDK
bash ./configure --with-freetype=../freetype --with-cups=/usr/include/cups --with-x=/usr/include/X11/extensions --with-jvm-variants=server --with-target-bits=64 --with-debug-level=release

checking if we can compile and link with freetype... yes`
checking if we should bundle freetype... yes`

make all

但它不起作用 - 字体渲染仍然像前两张图片一样。

对于提示良好的字体,差异变得更小:

enter image description here

enter image description here

但是需要适当提示的渲染器仍然做得不好——第四张图片中的所有字体都有缺陷:

  1. 锯齿状抗锯齿,对比度不均匀。
  2. 彩色流苏。
  3. 中线和上升线与像素对齐不佳。
  4. 波浪宽度的曲线。
  5. 倾向于使用会扭曲形状的单像素宽度“字符串”。
  6. 歪曲了某些细节。参见例如bottom line字体的中线衬线,模糊且没有形状,这是一款27px的字体。

因此问题:

<强>1。是否有一种方法可以为任何最新版本的 JDK/JRE 准备一个可移植的 tarball(不是系统范围的修改),其字体渲染质量与第三张/第五张图片中看到的相似?

<强>2。如果最新的抢先体验OpenJDK:

java version "1.8.0_122-ea"
Java(TM) SE Runtime Environment (build 1.8.0_122-ea-b04)
Java HotSpot(TM) 64-Bit Server VM (build 25.122-b04, mixed mode)

又出现了“传统的Linux Java”字体渲染,难道第三张图使用的方法是后来放弃的特性?

最佳答案

原来有自定义的jdk JetBrain OpenJDK,字体渲染有了很大的提升。

关于java - 一种使用类似 Freetype 的字体渲染获取 Linux JDK tarball 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41149451/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com