Размер черного фона должен быть больше, чем удвоенная высота ввода, и, по крайней мере, быть таким же широким, как вход.Так что я бы сделал следующее в Imagemagick
Ввод:
![enter image description here](https://i.stack.imgur.com/PIIKG.jpg)
infile="zelda1.jpg"
ww=`convert $infile -format "%[fx:1.5*w]" info:`
hh=`convert $infile -format "%[fx:2.1*h]" info:`
convert $infile -alpha on \
\( +clone -flip -channel A -evaluate multiply .35 +channel \) -append \
-size ${ww}x${hh} xc:black +swap \
-gravity North -geometry +0+5 -composite reflect_alpha.png
![enter image description here](https://i.stack.imgur.com/qm3pG.png)
Но вы можете попробовать мой сценарий оболочки bash unix Imagemagick, 3Dreflection на http://www.fmwconcepts.com/imagemagick/index.html,, если вы хотите большей гибкости.
ДОПОЛНИТЕЛЬНО:
Чтобы ответить на вашвопрос, не имеет значения, PNG или JPG.Проблема в том, что у вас есть прозрачность.Если поставить прозрачный фон, то
infile="WPB-wtpC.png"
ww=`convert $infile -format "%[fx:1.5*w]" info:`
hh=`convert $infile -format "%[fx:2.1*h]" info:`
convert $infile \
\( +clone -flip -alpha on -channel A -evaluate multiply .35 +channel +write tmp1.png \) -append +write tmp2.png \
-size ${ww}x${hh} xc:none +swap \
-gravity North -geometry +0+5 -compose over -composite reflect_alpha.png
![enter image description here](https://i.stack.imgur.com/p5DZ2.png)
Если вы используете черный фон, то
infile="WPB-wtpC.png"
ww=`convert $infile -format "%[fx:1.5*w]" info:`
hh=`convert $infile -format "%[fx:2.1*h]" info:`
convert $infile \
\( +clone -flip -alpha on -channel A -evaluate multiply .35 +channel +write tmp1.png \) -append +write tmp2.png \
-size ${ww}x${hh} xc:black +swap \
-gravity North -geometry +0+5 -compose over -composite reflect_alpha.png
![enter image description here](https://i.stack.imgur.com/cEmfJ.png)
ПРИМЕЧАНИЕ. У меня была опечатка в первом коде изображения Zelda.Я случайно набрал w, а не h в уравнении hh, которое я сейчас исправил.Это могло вас испортить.