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

blu*_*e10 6 imagemagick

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

circle.png

在此输入图像描述

inner.png

在此输入图像描述

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

convert -background none inner.png circle.png -layers flatten -resize 64x64 output.png
Run Code Online (Sandbox Code Playgroud)

这会产生:

在此输入图像描述

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

convert -background none inner.png -geometry 256x256 circle.png -layers flatten -resize 64x64 output.png
Run Code Online (Sandbox Code Playgroud)

产生

在此输入图像描述

从某种意义上说,内在形象相对变小了,但不是我想象的那样。

有什么想法可以用 imagemagick 来实现吗?

Ana*_*man 7

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

\n
magick convert circle.png inner.png -gravity Center -geometry 256x256+30+5 -composite -resize 64x64 output.png\n
Run Code Online (Sandbox Code Playgroud)\n

在哪里:

\n
    \n
  • -gravity Center告诉 ImageMagick 将任何“子图像”( inner.png) 相对于背景图像 ( circle.png) 居中。

    \n
  • \n
  • -geometry 256x256+30+5调整大小inner.png,然后256x256将其位置水平向右偏移 30 像素 (+),垂直向下偏移 5 像素 (+)。该偏移量被认为是相对于其当前位置的(受\xe2\x80\x91gravity上面 的影响)。

    \n
  • \n
  • -composite根据当前的-compose设置(默认值为)获取第一张图像 ( circle.png) 并覆盖第二张图像 ( ) 。重叠图像 ( ) 的位置由和设置控制。inner.pngOverinner.png-gravity-geometry

    \n
  • \n
\n

结果

\n

前任。最终合成图像 ( -resize 256x256 output.png)

\n

复合播放按钮

\n