Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Imagemagick将透明图像裁剪到遮罩_Imagemagick - Fatal编程技术网

Imagemagick将透明图像裁剪到遮罩

Imagemagick将透明图像裁剪到遮罩,imagemagick,Imagemagick,这是我的原始图像,请注意透明边框src.png: 这是我想用来修剪的面具。白色表示保留,黑色表示裁剪遮罩。png:请注意,它不一定是正方形。它可以是一颗心,一颗星星或任何东西 我还有transparent.png,它是一个完全透明的图像。所有三个图像都具有相同的尺寸 因此,运行此命令将生成以下图像: 转换transparent.png src.png mask.png-composite out.png 这是完美的遮罩,但现在我希望它裁剪成白色遮罩区域的大小。使用-trim有点接近,但是它去

这是我的原始图像,请注意透明边框src.png:

这是我想用来修剪的面具。白色表示保留,黑色表示裁剪遮罩。png:请注意,它不一定是正方形。它可以是一颗心,一颗星星或任何东西

我还有transparent.png,它是一个完全透明的图像。所有三个图像都具有相同的尺寸

因此,运行此命令将生成以下图像:

转换transparent.png src.png mask.png-composite out.png

这是完美的遮罩,但现在我希望它裁剪成白色遮罩区域的大小。使用-trim有点接近,但是它去掉了遮罩内部的透明区域


如何将遮罩图像的大小调整为遮罩中白色区域的大小?

我不知道您想做什么,尤其是为什么需要全尺寸透明画布。您的命令在my ImageMagick版本7上不会给出相同的结果

此命令可能是您正在查找的命令:

convert src.png mask.png -compose darken -composite -trim out.png
它给出了这一点-我人为地添加了一个红色边框,以便您可以在StackOverflow的白色背景上看到整个范围:

或者,您可能希望从遮罩中删除修剪框,并使用该框裁剪源:

convert mask.png -format %@ info:
113x113+570+33

convert src.png -crop 113x113+570+33 result.png

我不确定我是否理解你想要的结果。为什么需要完全透明的图像?这两个都是你想要的吗

带遮罩区域的全尺寸透明图像显示:

convert src.png mask.png -alpha off -compose copy_opacity -composite result1.png
修剪为您想要的零件:

convert src.png mask.png -alpha off -compose copy_opacity -composite -trim +repage result2.png