将图像放在其他图像的顶部,但调整大小以适应第一个

时间:2018-03-09 08:26:35

标签: imagemagick imagemagick-convert

我有两个png。一个是未知大小(但总是正方形),第二个是1024x1024并且大部分是透明的。我想把第二个放在第一个的顶部,但首先将它缩小到第一个的大小。

E.g。 image1.png是100x100,overlay.png是1024x1024。生成的图像大小为100x100,覆盖范围缩小为100x100,并放在源文件的顶部。

到目前为止,我得到了这个:

magick convert ~/Downloads/Test\ icon.png  res/drawable/icon.png -gravity center -composite  ~/result.png

但是生成的图像是1024x1024,而原始图像位于中心的某处。

1 个答案:

答案 0 :(得分:1)

这将在两个图像中读取,调整第二个尺寸以适应第一个尺寸,然后将第二个复合到第一个中心。

magick img1.png img2.png \
   -resize %[fx:u.w]x%[fx:u.h] -gravity center -composite output.png

如果在Windows中使用,那继续行反斜杠" \"应该改成插入符号" ^"。如果在Windows BAT脚本中使用,则单个百分号符号"%"需要双打" %%"。

编辑添加:工作方式是这样......两个图像被读入命令。外汇表达" u.w"和" u.h"代表第一张图像的宽度和高度。所以要#34; -resize"当然,第一个图像到它自己的尺寸并没有改变它。然后第二个调整大小以适应第一个维度。