我有两张 JPG,一张big.jpg
和一张small.jpg
。我想提取一个与 大小相同的区域,并将region.jpg
和合并为。等于,但在 16 像素边界处,它越来越类似于。big.jpg
small.jpg
region.jpg
small.jpg
result.jpg
result.jpg
small.jpg
region.jpg
使用 ImageMagick,我分两步完成了此操作,首先制作一个半透明的 PNG:
convert -compress None small.jpg -channel A -virtual-pixel transparent -morphology Distance Euclidean:4,16! semitransparent.png
convert -compress None big.jpg -crop wxh+x+y semitransparent.png -composite result.jpg
有没有办法一步完成此操作,而无需生成中间 PNG?我试过这个:
convert -compress None big.jpg -crop wxh+x+y small.jpg -channel A -virtual-pixel transparent -morphology Distance Euclidean:4,16! -composite result.jpg
但这并不完全相同:半透明层在边缘处并不是真正透明的。
我对 ImageMagick 完全是个新手(真是一个复杂的软件!),任何建议都将不胜感激。
编辑
我正在添加文件big.jpg
和small.jpg
进行操作,以及result.jpg
来自 2 行解决方案的和result2.jpg
来自单行解决方案的。-crop
我使用的是200x160+160+80
:
答案1
抱歉,我刚刚才找到答案。只需-compose atop
在之前添加-composite
:
convert -compress None big.jpg -crop 200x160+160+80 small.jpg \
-channel A -virtual-pixel transparent \
-morphology Distance Euclidean:4,16! \
-compose atop -composite result.jpg