Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一种使用Freetype-like字体呈现获取Linux-JDK tarball的方法_Java_Linux_Swing_Fonts_Rendering - Fatal编程技术网

Java 一种使用Freetype-like字体呈现获取Linux-JDK tarball的方法

Java 一种使用Freetype-like字体呈现获取Linux-JDK tarball的方法,java,linux,swing,fonts,rendering,Java,Linux,Swing,Fonts,Rendering,我想知道一种制作自包含(tarball)LinuxJDK/JRE的方法,该方法具有与提供的类似的高字体呈现质量。到目前为止,在: --正在试用可用于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 "

我想知道一种制作自包含(tarball)LinuxJDK/JRE的方法,该方法具有与提供的类似的高字体呈现质量。到目前为止,在:

--正在试用可用于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)

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

--尝试了许多不同的字体和大小,但似乎是正交的

--切换许多开关,如LCD渲染和抗锯齿:

--遵循“将不同repo的补丁包和脚本应用到Ubuntu衍生产品”之类的方法(这对我来说不起作用,至少在不久前,它在发行版级别上起作用,并提供了一个固定版本的jdk)

--从Swing辞职并尝试用JavaFX制作GUI

我开始相信我不会得到与Freetype相媲美的字体渲染。然后我无意中进入了Android Studio,它包含了三种Java和Linux以及一种类似Freetype的字体渲染:

事实证明,这一切都归结为它使用的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
但它不起作用-字体渲染仍然像前两幅图像一样

对于暗示良好的字体,差异会变小:

但是需要适当提示的渲染器仍然做得不好-第4幅图像中的所有字体都有缺陷:

  • 锯齿状抗锯齿,对比度不均匀
  • 五颜六色的流苏
  • 中间线和上升线与像素对齐不良
  • 波浪形宽度的曲线
  • 单像素宽度的“字符串”会扭曲形状
  • 扭曲了某些细节。例如,请参见底线字体中的中间线衬线,它们模糊且缺乏形状,这是一种27px字体
  • 因此,问题是:

    1。是否有一种方法可以准备JDK/JRE最新版本的便携式tarball(不是系统范围的修改),该版本的字体呈现质量与第三张/5张图像中的类似?

    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,它有一个大大改进的字体渲染。

    它发现有一个定制的jdk JetBrain OpenJDK,这大大改进了字体渲染。

    好,这是什么意思
    我想知道一种方法,可以制作一个自包含(tarball)的Linux JDK/JRE,其字体呈现与Freetype类似
    如果这意味着您需要一种看起来像Freetype的自定义字体,那么您可以找到一种(.ttf)并轻松地应用于JavaFX应用程序的css,无论Java版本如何,它都可以工作。当然,它必须首先支持JavaFX:)如果你想将它捆绑到你的JRE中,我想知道为什么?最后+1因为它很有趣。GOX,Freetype是一个提供高质量字体渲染的项目。我会修改这个问题使它更清楚。好的,这是什么意思
    我想知道一种方法,可以制作一个自包含(tarball)的Linux JDK/JRE,其字体呈现与Freetype类似
    如果这意味着您需要一种看起来像Freetype的自定义字体,那么您可以找到一种(.ttf)并轻松地应用于JavaFX应用程序的css,无论Java版本如何,它都可以工作。当然,它必须首先支持JavaFX:)如果你想将它捆绑到你的JRE中,我想知道为什么?最后+1因为它很有趣。GOX,Freetype是一个提供高质量字体渲染的项目。我将对问题进行编辑,使其更清楚。