Смещение сложенных изображений, созданных с помощью ImageMagick

В настоящее время я использую следующую команду ImageMagick для создания «стека Polaroid» фотографий из нескольких изображений JPG.

convert \
    img-5.jpg -thumbnail 300x200 -bordercolor white -border 10 \
    -bordercolor grey60 -border 1 -bordercolor none \
    -background none -rotate -4 \
    \
    \( img-2.jpg -thumbnail 300x200 -bordercolor white -border 10 \
       -bordercolor grey60 -border 1 -bordercolor none \
       -background none -rotate 6 \
    \) \
    \
    \( img-3.jpg -thumbnail 300x200 -bordercolor white -border 10 \
       -bordercolor grey60 -border 1 -bordercolor none \
       -background none -rotate -2 \
    \) \
    \
    \( img-1.jpg -thumbnail 300x200 -bordercolor white -border 10 \
       -bordercolor grey60 -border 1 -bordercolor none \
       -background none -rotate -4 \
    \) \
    \
    \( img-4.jpg -thumbnail 300x200 -bordercolor white -border 10 \
       -bordercolor grey60 -border 1 -bordercolor none \
       -background none -rotate 4 \
    \) \
    \
    -border 100x80 -gravity center +repage -flatten -trim +repage \
    -background black \( +clone -shadow 60x4+4+4 \) +swap -background none \
    -flatten stack.png

Эта команда сгенерировала следующее изображение:

Polaroid Stack

Что я хотел бы сделать, так это сместить изображения от центральной оси, используемой в настоящее время опцией поворота, чтобы между фотографиями было больше горизонтального (и, возможно, небольшого вертикального) разделения.

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

Какие команды я могу добавить к моему вызову convert выше, чтобы добиться этого?


person Simon Hampel    schedule 20.04.2013    source источник


Ответы (2)


-repage geometry

Adjust the canvas and offset information of the image.

Вот хороший пример с сайта imagemagick.org http://www.imagemagick.org/Usage/layers/#layer_prog

person Iamiuru    schedule 21.04.2013
comment
Спасибо - это то, что мне было нужно. Я обнаружил, что мне пришлось внести некоторые другие коррективы в исходную команду, чтобы она заработала. - person Simon Hampel; 21.04.2013

Спасибо @Iamiuru за то, что поставил меня на правильный путь. К сожалению, одного -repage было недостаточно, мне пришлось внести некоторые коррективы в другом месте, чтобы заставить его работать.

Вот команда, которую я в итоге использовал:

convert \
    img-5.jpg -thumbnail 300x200 -bordercolor white -border 10 \
    -bordercolor grey60 -border 1 -bordercolor none \
    -background none -rotate 3 -repage -20-5 \
    \
    \( img-2.jpg -thumbnail 300x200 -bordercolor white -border 10 \
       -bordercolor grey60 -border 1 -bordercolor none \
       -background none -rotate -5 -repage -10+0 \
    \) \
    \
    \( img-3.jpg -thumbnail 300x200 -bordercolor white -border 10 \
       -bordercolor grey60 -border 1 -bordercolor none \
       -background none -rotate 4 -repage -30+10 \
    \) \
    \
    \( img-1.jpg -thumbnail 300x200 -bordercolor white -border 10 \
       -bordercolor grey60 -border 1 -bordercolor none \
       -background none -rotate -4 -repage +20-10 \
    \) \
    \
    \( img-4.jpg -thumbnail 300x200 -bordercolor white -border 10 \
       -bordercolor grey60 -border 1 -bordercolor none \
       -background none -rotate 2 \
    \) \
    \
    -border 100x80 -flatten -trim +repage -background black \
    \( +clone -shadow 60x4+4+4 \) +swap -background none -flatten stack.png

Из моей исходной команды мне пришлось удалить параметры -gravity center +repage, так как они просто повторно центрировали все изображения обратно в их исходные местоположения, а -repage не работала.

Эта команда сгенерировала следующее изображение:

Polaroid стопка со смещением

person Simon Hampel    schedule 21.04.2013