Imagemagick:在背景上扭曲图像?

时间:2016-11-01 11:42:16

标签: image-processing imagemagick distortion

我有一张背景图片:sky.jpg
还有两个透明的PNG图片:gradient.pngtree.png

现在我想在背景上绘制两个带有透视变形的图像,如下所示:

combined.jpg 两个图像的目标坐标按顺时针顺序(从左上角开始):

渐变:62,129 421,218 383,458 147,548
树:445,100 765,47 698,368 529,396

我无法弄清楚如何从一张图片开始(在这种情况下是天空背景),然后拍摄另一张图片,并在背景中使用透视失真绘制到特定的目标坐标。在一个转换命令中同时使用多个图像执行此操作会让我感到麻烦。

例如,当我从一个图像(渐变)开始并尝试这个时:

convert sky.jpg \( gradient.png -alpha set -virtual-pixel transparent \
 +distort Perspective "0,0 62,129 255,0 421,218 255,255 383,458 0,255 147,548" \) \
 -compose src-over -composite result.jpg

它被正确扭曲(因此坐标相对正确)但它在左上角绘制,而不是在我指定的坐标处绘制。

另外,我有点不确定-compose-composite的使用是否正确(我从各种IM手册示例中得到了这个)。

另一件我不清楚的事情是:对于256x256图像,我应该使用255,0255,255以及0,255作为角点坐标,还是256,0以及256,2560,256

任何可以解释这些问题的IM专家?

1 个答案:

答案 0 :(得分:0)

-geometry之前添加-composite,如下所示:

convert -size 800x600 xc:black \( -size 300x200 xc:red \) -geometry +90+10 -composite result.png

enter image description here