transparency - Imagemagick 堆栈图像与透明度重叠
问题描述
我现在正在为此奋斗两天......没有成功。我用 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
对于某些文件,这工作正常(除了可选的透明度)。我真的不需要一个procentual偏移,如果每一层都偏移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% 透明)
添加:
如果您只想要 30 的固定 X 偏移而没有 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
推荐阅读
- python - 格式化输出记录和写入文件的 Python 函数不起作用
- google-sheets - 从其他工作表获取子范围地址
- php - WooCommerce:如果我将优惠券包装在折叠元素中,则优惠券在购物车中不起作用
- sql-server - 使用带有 where 条件的 bcp 将 SQL 导出到 XML
- string - 将字符串缩进 4 个空格(将制表符添加到字符串)
- apexcharts - ApexCharts:设置一个特定 y 轴工具提示的显示布尔值
- http - 部署到 Netlify 后通过 http 使站点可用
- javascript - 手机号码需要正则表达式以 61 到 99 开头,10 位数字
- javascript - Django submit form when browser is refreshed for multiple form
- java - How to set Spring HttpComponentsClientHttpRequestFactory with Apache httpcomponent5?