ImageMagick 蒙太奇总是包含标签

ImageMagick montage always includes labels

ImageMagick documentation 中,它说如果你使用 montage 没有任何花哨的选项,它应该只是排列你的图像,没有任何装饰和一些间距。

这不会发生在我身上。这是我的两个输入图像:

这是两个独立的 PNG,大小均为 100x100,背景为红色。现在,如果我 运行 montage 1.png 2.png out.png,它会生成一个如下所示的图像文件 out.png

您可能会注意到,那里有标签。我已经尝试了所有方法,但无法删除这些标签。例如,在命令中添加 -label "" 会产生这样的结果:

由于是白色背景所以不明显,但是标签的space仍然是图像的一部分,那里什么都没有。

最终结果是我想将这些图像紧紧地打包(所以这两张会产生 200x100 png),我希望命令是这样的:montage -geometry 100x100+0+0 -label "" -background blue 1.png 2.png out3.png 这里我做了背景蓝色突出显示 "label" 区域,在最终版本中应该没有必要。这是该命令产生的结果:

图片大小为200x118,表示标签增加了18像素。删除命令的标签参数除了使标签成为数字外没有任何作用。我想我有点失去理智了,我已经尝试了这个命令的几十种变体,但没有什么能摆脱那个 "label space"。鉴于它们默认出现,并且文档表明它不应该出现,我开始怀疑这是 ImageMagick 中的一个错误,但又一次:失去理智。我想我可能只是遗漏了一些明显的东西。

我在 macOS 上,通过 Homebrew 安装了 ImageMagick,尽管我尝试直接从他们的网站上使用该版本,但它没有用。这是 montage -version 报告的内容:

Version: ImageMagick 7.0.5-7 Q16 x86_64 2017-05-20 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules
Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib

作为临时解决方法,请使用它直到解决问题:

convert [12].png +append out.png

或者,如果您想要更大的网格:

convert [123].png +append \( [456].png +append \) -append out.png

请注意,+append 将附加到 side-by-side,而 -append 将附加到下方。

默认的几何图形是+2+2,所以如果你想让它们不附加space那么你必须使用-geometry +0+0.

此外,您的文件的元数据标签分别为 1 和 2。因此,即使我将文件名更改为 a.png 和 b.png,蒙太奇也会应用 1 和 2 的标签。标签将始终显示在元数据中或者如果您使用 -label "XYZ" 或 -label "%f"。如果您不想显示标签,请移除标签。但即使您使用 -label "" 或 -set label "",它仍然会在元数据中留下一个空标签。所以它会在底部留下一个白色的space。

魔术蒙太奇1.png2.png-背景蓝色-设置标签""-几何+0+0结果1.png

你可以做一个单面的(受保护的)-trim 之后去除白色。但是你必须从蒙太奇管道到 magick(convert) 并在另一侧用黑色填充。

但是,您可以只使用带有 pnm: 的管道来删除标签,因为 pnm 不带有标签 属性。 (如果您使用 miff: 或 tiff:,即使您使用 -strip,它也会带有标签 属性)。所以这个命令将像 +append 一样工作,但如果你不想要任何 space

,只使用 +append 会更容易
magick 1.png 2.png pnm:- | magick montage - -background blue -geometry +0+0 result2.png