Композитный ImageMagick изменяет размер изображения перед созданием - PullRequest
4 голосов
/ 29 марта 2011

Я использую составную команду ImageMagick для создания одного меньшего изображения поверх большего.Полученное изображение должно иметь размер фонового изображения (большее).Кроме того, я хочу, чтобы меньший размер всегда был одинакового размера.

В настоящее время у меня такой простой вызов:

composite -gravity SouthWest watermark.png photo.jpg photo.jpg

Проблема в том, что я получаю водяной знак разных размеров для разных фотографийи я не знаю, как установить фиксированный размер.Я пробовал опции -resize, -geometry и -size, но все они меняют размер получаемого изображения, а не водяные знаки.

Ответы [ 2 ]

5 голосов
/ 01 июня 2011

У меня была похожая проблема, и я попробовал всевозможные варианты с помощью составной команды, чтобы попытаться заставить ее работать. В конце концов мне пришлось переключиться на использование команды конвертирования, и я смог изменить размер под действием силы тяжести, используя:

convert photo.jpg -gravity SouthWest -draw "image Over 0,0,200,200 watermark.png" photo.jpg

Числовые параметры для -draw: left, top, width, height. См. http://www.imagemagick.org/script/command-line-options.php?#draw. Так что это решение больше не использует составную команду, но, надеюсь, даст вам то, что вы хотите.

1 голос
/ 25 февраля 2014

Ура!

Я нашел ответ из небольшой заметки в руководстве по ImageMagick, в которой говорится, что -resize '1x1<' по сути не используется (и SHORT-CIRCUIT) для изменения размераоперация.

Итак, если у меня есть файл image.jpg 1200x1200, и я наложил его на 600x600 copyright.png, используя эту команду:

composite -dissolve 50% -gravity center image.jpg copyright.png result.jpg

мое изображение будет изменено до 600x600 согласноthe copyright.png.

Однако, если я сделаю следующее:

composite -resize '1x1<' -dissolve 50% -gravity center image.jpg copyright.png result.jpg

мое выходное изображение сохранит свой первоначальный размер 1200x1200.

...