我现在为此战斗了两天……没有成功。我已经用Gimp完成了一些任务,但是现在我想使其自动化以进行标准处理。
因此结果应如下图所示https://imgur.com/a/jcb3amr前面一种图像,后面两种或三种图像,具有一定的透明度,可以淡化图层(可选)。一组中始终存在相同的图像尺寸。但是尺寸可能与其他组不同。例如:要组合的一组是每个图像124x112px,另一组是188x80px,下一组是164x160px。
我尝试过类似的东西
convert image1.png image2.png image3.png -set page '+%[fx:u[t-1]page.x+u[t-1].w-256]+%[fx:u[t-1]page.y+16]' -background none -layers merge +repage output.png
对于某些文件,它工作正常(可选的透明度除外)。我真的不需要分叉的偏移量,如果每层都偏移30x5px就可以了。但是输出图像应与输入图像相关。
因此,简而言之,..现在真的很困惑如何实现这一目标。希望有人能帮忙。我还研究了PHP Imagick扩展https://www.php.net/manual/de/book.imagick.php在那里,我采用了以下方法,甚至比上述方法更糟
$imagick->newimage(200, 112, '#ffffffff');
foreach ($uploadfiles as $file) {
$im = new Imagick($file);
$imagick->compositeimage($im, Imagick::COMPOSITE_DEFAULT, 30, 5);
}
$imagick->writeImage($output);
似乎完全没有抵消它。
有人帮助我吗?
这在Imagemagick 6中对我有用。
输入:
convert lena.png \( lena.png -duplicate 2 -alpha set -channel a -evaluate set 75% \) lena.png -set page '+%[fx:u[t-1]page.x+u[t-1].w-128]+%[fx:u[t-1]page.y+16]' -background none -layers merge +repage output.png
第一个和最后一个图像是不透明的,中间的3个图像是75%的不透明(25%透明)
添加:
如果只希望固定的X偏移为30而没有Y偏移,则使用
convert lena.png \( lena.png -duplicate 2 -alpha set -channel a -evaluate set 75% \) lena.png \
-set page '+%[fx:u[t-1]page.x+30]+0' -background none -layers merge +repage output.png