Монтаж ImageMagick всегда включает ярлыки
В документации ImageMagick говорится, что если вы используете montage
без каких-либо причудливых вариантов, он должен просто выровнять ваши изображения без каких-либо украшений и с некоторым интервалом.
Это не происходит со мной. Вот мои два входных изображения:
Это два отдельных PNG размером 100x100 с красным фоном. Теперь, если я бегу montage 1.png 2.png out.png
, он производит файл изображения out.png
это выглядит так:
Вы можете заметить, там есть ярлыки. Я перепробовал все, и я не могу удалить эти ярлыки. Например, добавив -label ""
Команде выдает это:
Это не очевидно из-за белого фона, но пространство для надписей все еще является частью изображения, там просто ничего нет.
Конечным результатом является то, что я хочу плотно упаковать эти изображения (так что эти два будут производить 200x100 png), и я ожидаю, что команда будет выглядеть примерно так: montage -geometry 100x100+0+0 -label "" -background blue 1.png 2.png out3.png
Здесь я сделал синий фон, чтобы выделить область "метки", в финальной версии это не должно быть необходимо. Вот что производит эта команда:
Размер изображения составляет 200x118, что означает, что для надписей добавлено 18 пикселей. Удаление аргумента метки для команды ничего не делает, кроме как превращение метки в число. Я думаю, что немного схожу с ума, я перепробовал десятки вариантов этой команды, и ничто не избавляет от этого "пространства меток". Учитывая, что они отображаются по умолчанию, а документация указывает, что это не должно, я начинаю подозревать, что это ошибка в ImageMagick, но опять же: схожу с ума. Я думаю, что я, вероятно, просто упускаю что-то очевидное.
Я нахожусь на macOS, с ImageMagick, установленным через Homebrew, хотя я попробовал с версией непосредственно с их сайта, и она не работала. Это то, что 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
2 ответа
Геометрия по умолчанию: +2+2, поэтому, если вы хотите, чтобы они были добавлены без пробелов, вы должны использовать -geometry +0+0.
Кроме того, ваши файлы имеют метки меток 1 и 2 соответственно. Поэтому, даже если я изменю имена файлов на a.png и b.png, при монтаже будут применены метки 1 и 2. Метки всегда будут отображаться либо в метаданных, либо при использовании -label "XYZ" или -label "% F". Если вы не хотите, чтобы метки отображались, удалите метки. Но даже если вы используете -label "" или -set label "", он все равно оставляет пустую метку в метаданных. Так что это оставит пустое пространство внизу.
magick montage 1.png 2.png -бэк-синий фон -установить метку "" -геометрия +0+0 result1.png
После этого вы можете сделать односторонний (защищенный) трим, чтобы удалить белый. Но вам нужно будет перейти от монтажа к магии (конвертировать) и заполнить черным с противоположной стороны.
Однако вы можете просто использовать канал с pnm: для удаления метки, так как pnm не несет свойства метки. (Если вы используете miff: или tiff:, даже если вы используете -strip, он будет иметь свойство label). Так что эта команда будет работать как +append, хотя было бы проще использовать +append, если вы не хотите использовать пробел
magick 1.png 2.png pnm:- | magick montage - -background blue -geometry +0+0 result2.png
В качестве временного обходного пути просто используйте это, пока он не будет разобран:
convert [12].png +append out.png
Или, если вы хотите большую сетку:
convert [123].png +append \( [456].png +append \) -append out.png
Обратите внимание, что +append
будет добавлять бок о бок, тогда как -append
добавлю ниже.