给定这两张具有透明背景、尺寸为 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.png
为256x256
然后将其位置水平向右偏移 30 像素 (+) 并垂直向下偏移 5 像素 (+)。此偏移被视为相对于其当前位置(受 的影响‑gravity
,见上文)。-合成的拍摄第一幅图像 (
circle.png
) 并inner.png
根据当前-撰写环境 (默认值为Over
)。叠加图像( )的位置由和设置inner.png
控制。-gravity
-geometry
结果
例如最终合成图像 ( -resize 256x256 output.png
)