我有以下图片(请注意透明背景):
我也有一个相同尺寸的黑色/白色面具:
我想“裁剪”这件衣服,只得到黑色圆圈中包含的第一张图像的一部分。我尝试了许多不同的方法,但它们不起作用或太慢:
1)ImageMagick(命令行)<==我可以使用哪个命令来实现这一点?我尝试了乘法和复制不透明,但它们没有用
2) WideImage 工作:$maskedImage = $source->applyMask($mask);
但需要超过 12 秒。
如果可能的话,我对 ImageMagick 解决方案感兴趣。
编辑
如果掩码小于原始图像并且原始图像很简单,则提供的解决方案可以正常工作。使用这些源图像和蒙版,结果是“涂抹”的:
资源:
面具:
命令:
convert source.png \( mask.png -negate \) -alpha off -compose copy_opacity -composite result.png
结果(我添加了灰色背景而不是透明背景以显示错误的白色):