使用ImageMagick在多个图像上使用“扭曲透视”的奇怪效果

时间:2017-03-14 15:45:57

标签: imagemagick imagemagick-convert perspective distortion

我想在图像上创建一个3D效果,使其看起来像一个文件夹,使用ImageMagick中的+ distort Perspective'命令。

但是,如果我在ImageMagick中多次使用扭曲(在不同的图层上),结果看起来不正确。

请参阅附图,左图是正确的,但右图的右上角看起来很奇怪。

left is correct but right is incorrect

我使用了以下命令:

convert square.jpg -brightness-contrast 0x0 -resize 700x700 \
            \( -clone 0 -flip -crop 700x140+0-0 -size 700x140 gradient:gray60-black -compose CopyOpacity -composite \) \
            -append front.png

convert square.jpg -brightness-contrast -50x0 -resize 700x700 \
\( -clone 0 -flip -crop 700x140+0-0 -size 700x140 gradient:gray60-black -compose CopyOpacity -composite \) \
-append inner.png

convert -background None -virtual-pixel transparent -background white  \
            \( inner.png +distort Perspective '0,0 0,0  700,0 735,-35  700,700 735,665  0,700 0,700' \) \
            \( front.png +distort Perspective '0,0 0,0  700,0 665,35  700,700 665,735  0,700 0,700' \) \
            -layers merge +repage 3dimage.jpg

我正在使用ImageMagick v6.8

我不确定我是否正确了解ImageMagick中的图层。 有人能看出什么问题吗?谢谢!

1 个答案:

答案 0 :(得分:2)

  

我不确定我是否正确了解ImageMagick中的图层。有人能看出什么问题吗?

你做得很好。只需要在front.png (也可能是inner.png)的子图像上重复-virtual-pixel transparent

convert -background None -virtual-pixel transparent -background white  \
        \( inner.png +distort Perspective '0,0 0,0  700,0 735,-35  700,700 735,665  0,700 0,700' \) \
        \( front.png -virtual-pixel transparent +distort Perspective '0,0 0,0  700,0 665,35  700,700 665,735  0,700 0,700' \) \
        -layers merge +repage 3dimage.jpg

3dimage.jpg