字体大小渲染因使用 Gimp 登录而异?

Font size rendering is different depending upon login using Gimp?

我正在使用 Gimp python-fu 插件。正确编写的插件渲染了一个文本块:

(GIMP_UNIT_POINT = 3)
titleBlockLayer = pdb.gimp_text_layer_new(img, title, <font_name>, 40, GIMP_UNIT_POINT)

但只有在登录到计算机的控制台(Fedora,各种版本,相同的行为;GIMP 的各种版本,相同的行为)。 但是ssh登陆时,(使用X11转发本地显示),字体比较显大

我很困惑,因为(据说)相同的登录 .profile 和 .rc 文件已经 运行 无论如何。

有没有人知道 what/where/how GIMP 确定 POINT 的含义,因为它显然没有编码但依赖于某些资源文件。

对于 Gimp,一个点是 1/72 英寸,根据 PDB 浏览器中 gimp_text_get_extents_fontname() 的文档:

If you need to display a font in points, divide the size in points by 72.0 and multiply it by the vertical resolution of the image you are taking into account.

根据实验,当使用 gimp_text_layer_new() 中的点时,大小取决于图像打印定义。该值可能取决于用户设置(默认为 72DPI),但您可以使用 gimp_image_get_resolution(...)gimp_image_set_resolution(...) control/set 它。令我困扰的是,似乎至少在我的 Ubuntu 16.04 gimp_text_layer_new() 上以英寸而不是点为单位(在 72DPI 下,点和像素应该相等),所以我会坚持使用像素并使用图像分辨率进行点<->像素转换。

顺便问一下,您的各种系统上的 Gimp 以及 Pango 和 Cairo 库的版本是多少?

编辑:可能的解释:似乎在最近的版本中(至少从 2.8 开始),gimp_text_layer_new() 接受的不仅仅是像素和点。它还需要毫米、英寸和派卡。所以它不再是 0 表示像素,1 表示点,您可以使用预定义的 UNIT_* 值。问题:1 不再是点值,而是现在的英寸值:

UNIT_PIXEL=0
UNIT_INCH=1 
UNIT_MM=2
UNIT_POINT=3
UNIT_PICA=4