如何在 imagemagick 中叠加具有位置和比例的两幅图像?

如何在 imagemagick 中叠加具有位置和比例的两幅图像?

给定这两张具有透明背景、尺寸为 512x512 的图像:

circle.png

在此处输入图片描述

inner.png

在此处输入图片描述

我想叠加这两幅图像,使它们居中显示,并将图像尺寸缩小到 64x64。我最初的尝试如下:

convert -background none inner.png circle.png -layers flatten -resize 64x64 output.png

得出的结果为:

在此处输入图片描述

从设计角度来看,内部图像看起来相对来说有点太大,所以我想稍微缩小一点。尽管从技术上讲是居中的,但我更愿意将其稍微向右移动一点,但不增加图像的总宽度。我认为这需要使用-geometry。我尝试了很多组合,但从未得到想要的效果。例如

convert -background none inner.png -geometry 256x256 circle.png -layers flatten -resize 64x64 output.png

生产

在此处输入图片描述

从某种意义上来说,内在图像相对变小了,但不是我所期望的那样。

有什么想法可以使用 imagemagick 来实现这一点吗?

答案1

您可能希望尝试以下操作:

magick convert circle.png inner.png -gravity Center -geometry 256x256+30+5 -composite -resize 64x64 output.png

在哪里:

  • -重心告诉 ImageMagick 将任何“子图像”(inner.png)相对于背景图像(circle.png)置于中心位置。

  • -几何 256x256+30+5调整大小inner.png256x256然后将其位置水平向右偏移 30 像素 (+) 并垂直向下偏移 5 像素 (+)。此偏移被视为相对于其当前位置(受 的影响‑gravity,见上文)。

  • -合成的拍摄第一幅图像 ( circle.png) 并inner.png根据当前-撰写环境 (默认值为Over)。叠加图像( )的位置由和设置inner.png控制。-gravity-geometry

结果

例如最终合成图像 ( -resize 256x256 output.png)

复合播放按钮

相关内容