2013-04-19 2 views
1

Я хотел бы иметь возможность взять 5 изображений JPG и обработать их с помощью ImageMagick, чтобы создать эффект, показывающий фотографии в виде стека изображений, похожих на Polaroid.Создайте стек изображений, похожих на Поляроид, из существующих изображений, используя ImageMagick

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

Вращение/смещение не обязательно должно быть случайным как таковое - оно может быть закодировано вручную для каждого изображения в стеке, если это проще, чем делать это по-настоящему случайным?

Вот пример эффекта я стремлюсь: Stack of Polaroid-like photos

Может кто-то помочь с правильными параметрами, чтобы использовать - я предполагаю, что мы хотим использовать преобразование?

Редактировать: Я уже знал о примере, содержащемся на странице ImageMagick, но в нем конкретно не указаны мои требования - они клонируют исходное изображение, они не используют несколько отдельных изображений. Они также не очень хорошо объясняют в каждом примере то, что каждый вариант делает - они полагают, что вы уже потратили часы (или дни!), Экспериментируя с миллионами доступных вариантов. Немного сложно для тех, кто никогда не использовал инструмент для освоения без большой работы.

convert thumbnail.gif \ 
    -bordercolor white -border 6 \ 
    -bordercolor grey60 -border 1 \ 
    -bordercolor none -background none \ 
    \(-clone 0 -rotate `convert null: -format '%[fx:rand()*30-15]' info:` \) \ 
    \(-clone 0 -rotate `convert null: -format '%[fx:rand()*30-15]' info:` \) \ 
    \(-clone 0 -rotate `convert null: -format '%[fx:rand()*30-15]' info:` \) \ 
    \(-clone 0 -rotate `convert null: -format '%[fx:rand()*30-15]' info:` \) \ 
    -delete 0 -border 100x80 -gravity center \ 
    -crop 200x160+0+0 +repage -flatten -trim +repage \ 
    -background black \(+clone -shadow 60x4+4+4 \) +swap \ 
    -background none -flatten \ 
    poloroid_stack.png 

... было бы здорово, если бы кто-то мог расширить этот пример и показать мне, как изменить его для достижения моих желаемых результатов, как указано выше.

ответ

4

Вот команда, я нашел дайте неплохой результат за то, что мне нужно - благодаря @Jim Lindstrom за то, что поставили меня на правильный путь.

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

Это не совершенен, у меня есть еще несколько ухищрений я хотел бы сделать, которые я буду спросите об этом в отдельном вопросе. не

2

Документы для «конвертирования» показывают почти точно. Поиск «хорошая выглядящей куча фотографий» на http://www.imagemagick.org/Usage/thumbnails/#polaroid

Вот еще один способ сделать это, что делает, надеюсь, ясно, как один бы к югу в своих собственных фотографиях:

# create four images we want to use as our polaroid stack (I'm using the same one for all 
# one, but you don't have to) 
curl -O http://www.imagemagick.org/Usage/thumbnails/thumbnail.gif 
cp thumbnail.gif thumbnail1.gif 
cp thumbnail.gif thumbnail2.gif 
cp thumbnail.gif thumbnail3.gif 
cp thumbnail.gif thumbnail4.gif 
rm thumbnail.gif 

# You can easily see the recurring portion of this command. You could build 
# it up programmatically and then execute it, for however many images you want. 
# I've also simplified the example in their docs by hard-coding some rotation 
# angles. Feel free to get fancy, or just hard code an array of them and keep 
# grabbing the next one. 
convert \ 
    thumbnail1.gif \ 
    -bordercolor white -border 6 \ 
    -bordercolor grey60 -border 1 \ 
    -bordercolor none -background none \ 
    -rotate 20 \ 
    -trim +repage \ 
    \ 
    \(\ 
    thumbnail2.gif \ 
    -bordercolor white -border 6 \ 
    -bordercolor grey60 -border 1 \ 
    -bordercolor none -background none \ 
    -rotate -8 \ 
    -trim +repage \ 
    \) \ 
    -gravity center \ 
    -composite \ 
    \ 
    \(\ 
    thumbnail3.gif \ 
    -bordercolor white -border 6 \ 
    -bordercolor grey60 -border 1 \ 
    -bordercolor none -background none \ 
    -rotate 3 \ 
    -trim +repage \ 
    \) \ 
    -gravity center \ 
    -composite \ 
    \ 
    \(\ 
    thumbnail4.gif \ 
    -bordercolor white -border 6 \ 
    -bordercolor grey60 -border 1 \ 
    -bordercolor none -background none \ 
    -rotate -17 \ 
    -trim +repage \ 
    \) \ 
    -gravity center \ 
    -composite \ 
    \ 
    -crop 200x160+0+0 +repage -flatten -trim +repage \ 
    -background black \(+clone -shadow 60x4+4+4 \) +swap \ 
    -background none -flatten \ 
    \ 
    poloroid_stack.png 
+0

На самом деле, нет у них нет. Они не дают конкретного примера, как использовать несколько разных изображений - они клонируют исходное изображение. Они также не очень хорошо объясняют, что каждый вариант делает в своих примерах - очень сложно для тех, кто никогда не использовал конвертировать, чтобы понять, что происходит, не тратя часы на эксперименты. Было бы очень полезно, если бы вы могли принять их пример и расширить его в соответствии с моими потребностями, указанными выше, объясняя, какие параметры делают, я могу настроить его на то, что мне нужно. –

+0

Спасибо @ Jim Lindstrom - ваше решение не совсем заняло то, что мне было нужно, но это действительно поставило меня на правильный путь. –

Смежные вопросы