背景图片: background
最终效果: gif effect
如何使红色心脏移动并覆盖背景文字?
我已经尝试过了:
转换back.png(-clone1-重心-geometry + 10 + 10 heart.png)(-clone 1 *******)
这只是移动心脏,但没有覆盖文字。
如何使红色心脏移动并掩盖背景文本的一部分?
戴着口罩?
答案 0 :(得分:0)
这是使用Imagemagick的一种方法。首先,我需要从您的一个动画帧中裁剪出心形,因为您没有提供它。
心脏图片:
背景图片:
首先,我在桌面上创建一个名为test的新文件夹,并将两个图像都放入其中。
这是(Bash)Unix语法中的代码。
我从背景的右侧向左侧开始倒退。然后使用j =(55-i)反转i索引,以便以后按字母顺序组合。 jj计算会为小于10的索引添加前导零,以便所有帧以字母顺序列出在测试文件夹中。
对于每帧,它提取背景的Alpha通道并在右侧绘制一个黑色矩形,然后使用-compose copy_opacity -composite
将结果放回到背景图像的Alpha通道中。这可以有效地使透明字母位于透明位置。然后,将心脏图像合成为绘制黑色矩形的相应左边缘。
循环结束后,我从测试目录中收集所有以tmp_开头的帧,并创建一个gif动画,并将其写入桌面。
x=564
for ((i=0; i<56; i++)); do
j=$((55-i))
jj=`printf "%02d\n" $j`
convert background.png \
\( -clone 0 -alpha extract -fill black -draw "rectangle $x,0 639,123" \) \
-alpha off -compose copy_opacity -composite \
heartshape.png -geometry +${x}+28 -compose over -composite tmp_$jj.gif
x=$((x-8))
done
convert -dispose background -delay 10 tmp_*.gif -loop 0 ../heart_animation.gif
请注意,Windows Imagemagick和脚本语法是不同的。如果某种Windows用户想要发布转换,那就太好了。