使用VIPS,如何减少文本中的行间间距?对于vips.Image.text(),有一个名为spacing的可选参数,用于确定行之间的间距。但是,我可以使间距更大,但不能更小。例如,在下面的代码中(对vip使用Lua绑定,lua- VIPS ),将0作为spacing的参数传递...
local vips = require 'vips'
local t = vips.Image.text("This is a\nrandom test.", {
spacing = 0
})
t:write_to_file("test.png")生成以下输出:

正如预期的那样,使用更大的值会使间距更大,因此使用负值可能会使间距更小。然而,结果是lib给了我一个警告:
(lua-vips:17404): GLib-GObject-WARNING **: value "-1" of type 'gint' is invalid or out of range for property 'spacing' of type 'gint'
我知道VIPS使用Pango处理文本,所以我不确定这是VIPS还不支持的东西,还是Pango还不支持的东西。
发布于 2020-01-06 00:46:09
看起来pango不支持间距< 0:
https://developer.gnome.org/pango/stable/pango-Layout-Objects.html#pango-layout-set-line-spacing
https://developer.gnome.org/pango/stable/pango-Layout-Objects.html#pango-layout-set-spacing
所以我觉得你可能不走运。我想,你可以单独渲染线条,然后自己定位它们。
https://stackoverflow.com/questions/59601894
复制相似问题