使用imagemagick将焊盘调整大小的遮罩应用于裁剪大小的图像

使用imagemagick将焊盘调整大小的遮罩应用于裁剪大小的图像,image,imagemagick,mask,graphicsmagick,Image,Imagemagick,Mask,Graphicsmagick,我有一个imagemagick命令,它将掩码应用于图像: convert\(subject.jpg-调整大小“370x210^”-重心-裁剪“370x210+0+0”\)\(mask.png-调整大小“370x210”-重心)-复合输出.png 图像以所需的尺寸结束,保留了纵横比。遮罩最终小于目标尺寸,但居中。这一切都很好,正是我想要的。但是,我希望面具外的任何东西都是彩色的(隐藏面具外的图像部分) 这是当前的结果: 这就是我要找的: (请注意,图像的宽度和高度相同,但“侧栏”不再显示在底部

我有一个imagemagick命令,它将掩码应用于图像:

convert\(subject.jpg-调整大小“370x210^”-重心-裁剪“370x210+0+0”\)\(mask.png-调整大小“370x210”-重心)-复合输出.png

图像以所需的尺寸结束,保留了纵横比。遮罩最终小于目标尺寸,但居中。这一切都很好,正是我想要的。但是,我希望面具外的任何东西都是彩色的(隐藏面具外的图像部分)

这是当前的结果:

这就是我要找的:

(请注意,图像的宽度和高度相同,但“侧栏”不再显示在底部图像上。如果遮罩和图像具有相同的纵横比,则这两个图像之间不会有差异。)


我尝试了很多不同的方法(用额外的全尺寸白色图像、边框、帧等进行合成),但我无法获得所需的输出,也无法在网上找到一个好的示例。有什么提示吗?

使用命令将图像遮罩填充到剪裁边框。这项技术非常接近打印的出血和视频的过度扫描

示例

假面

定义作为剪裁边界的遮罩边界颜色,以及填充的颜色

对于本例,边框和颜色为黑色。注意,我添加了缺少的&,但这是我的示例中的本地化内容

convert \
 \( source.jpg -resize "370x210^" -gravity Center -crop "370x210+0+0" \) \
 \( mask.png -resize "370x210" -gravity "Center" \
   -bordercolor black \
   -fill black \
   -draw "color 10,10 filltoborder" \
 \) \
-alpha Off -compose CopyOpacity -composite out.png
source.png

out.png


为什么不给面具额外的颜色?@emcconville ImageMagick没有出血选项。你指的是什么?出血是一种古老的印刷技术,与即时通讯无关。在本例中,您将修改遮罩图像,使其包含比所有合成图像更大的区域,并将其作为最后一步。