2017-07-13 40 views
0

我想制作一个包裹图像或gif,当与不同的图像合成时,它将像包裹图像一样包裹它。Imagemagick:合成2个图像,其中1个包装另一个

例如结合这两个图像:

enter image description here

enter image description here

会产生这一形象

enter image description here

我不想要一个ImageMagick的命令做这个具体像素移动,因为那样它将不会被模块化。

+0

我不理解你的评论“我不想要一个imagemagick命令来完成像素的这种特定运动,因为它不会是模块化的。”你想如何控制重叠的数量以及有多少重叠? – fmw42

+0

我张贴的第二张图片渐变将控制重叠,但我开始意识到这基本上是不可能的(除非我想玩神经网络或疯狂的东西)。您的答案仍然非常有用,所以谢谢。 – Auh

回答

1

这是Imagemagick使用-roll函数的一种方法。但不幸的是,它不使用百分比。所以我必须在IM 6中做一个单独的计算来将百分比转换为像素。在IM 7中,除了设置pct重叠和分割之外,还可以在一个命令中完成。

在这里,我把图像分成3个部分(每个33%,尽管可以使用不同的数量)。然后将中间部分向右卷绕33%。

IM 6

pct=33 
rollx=`convert palmtree.png -format "%[fx:round($pct*w/100)]" info:` 
convert palmtree.png \(-clone 0 -gravity north -crop 100%x$pct%+0+0 +repage \) \(-clone 0 -gravity center -crop 100%x$pct%+0+0 +repage -roll +${rollx}+0 \) \(-clone 0 -gravity south -crop 100%x$pct%+0+0 +repage \) -delete 0 -append result.png 

IM 7

pct=33 
magick palmtree.png -set option:rollx "%[fx:round($pct*w/100)]" \(-clone 0 -gravity north -crop 100%x$pct%+0+0 +repage \) \(-clone 0 -gravity center -crop 100%x$pct%+0+0 +repage -roll +[rollx]+0 \) \(-clone 0 -gravity south -crop 100%x$pct%+0+0 +repage \) -delete 0 -append result.png 

enter image description here

如果你不希望所有的33%,然后更改PCT您要为每个零件无论%,而为所需的卷。如果你想使用多个图像,然后用你想要的实际图像替换每个-clone。

相关问题