图像magick将图像放入行中然后生成反射

时间:2014-09-02 11:47:24

标签: imagemagick imagemagick-convert

我想知道我是否可以使用imagemagick来生成像这样的结果图像

enter image description here

我的初始图片将是这样的

enter image description here

我可以创建像这样放在背景中的暗图像 -

convert -brightness-contrast -20x10 GARDENS-ILLUSTRATED_JAN-14.jpg out_lighter2.jpg

但我不知道如何将它们排成一行,然后产生反射。

1 个答案:

答案 0 :(得分:2)

我有一些接近的东西,但没有更多的时间,所以也许你可以摆弄它并得到你想要的东西:

#!/bin/bash
input=input.png

# Calculate width and height
w=$(convert $input -ping -format "%w" info:)
h=$(convert $input -ping -format "%h" info:)

# Calculate how much to chop off bottom and height of reflection
chop=$(echo $h*60/100|bc)
refl=$(echo $h*20/100|bc)
convert $input -alpha on \
      \( +clone -flip -size ${w}x${refl} gradient:gray40-black -alpha off -compose CopyOpacity -composite \) \
      -append -background white -compose Over -flatten -gravity South -chop 0x${chop} output1.png

# Darken and reduce for second layer
convert output1.png -brightness-contrast -25x8 -resize 90% output2.png

# Darken and reduce for third layer
convert output2.png -brightness-contrast -25x8 -resize 90% output3.png

# Make big new output canvas
neww=$(echo $w*1.6|bc)
newh=$(echo $h*1.6|bc)

# Splat images onto it with offsets
convert -size ${neww}x${newh} xc:transparent -page +0+80 output3.png \
    -page +40+40 output2.png \
    -page +80+0 output1.png -flatten output.png

我的基本想法是先在output1.png生成明亮的最前面的图像,然后变暗并将其缩小为output2.png并再次变为output3.png。然后将它们全部合并到output.png并稍微偏移。

enter image description here