或者:如何获取非正方形 PNG 并使用透明度“填充”图像的“其余部分”,以便生成的正方形图像中的原始图像位于正方形的中心?
最终,我想要的是拍摄任何大小的任何 GM 支持格式的图像,并创建一个缩小的 PNG(例如,任一尺寸最大为 40 像素),保持纵横比,为非正方形原始图像填充透明度,并应用已准备好的 40x40 PNG 透明度蒙版。
我已经知道如何缩小尺寸并保持宽高比;我已经有了应用合成的命令。我唯一缺少的是将非正方形图像方形化(用透明度填充)。
优先使用单一命令;可以接受多命令链。
(编辑)
额外信息:这是我正在使用的复合命令:
gm composite -compose copyopacity mask.png source-and-target.png source-and-target.png
其中 mask.png 有白色像素,代表我想保留的 source-and-target.png,还有透明像素,代表我想删除(并变为透明)的 source-and-target.png。
答案1
此命令将接受任意大小的输入文件,并将其最适合于 40x40 的正方形并用透明度填充:
convert \
original.png \
-thumbnail '40x40>' \
-background transparent \
-gravity center \
-extent 40x40 \
-compose Copy_Opacity \
-composite mask.png \
original-resized.png
该gravity
选项可确保图像在两个方向上均居中,并transparent
在没有像素的地方使用。然后使用mask.png
答案2
一个命令即可转换一个文件夹中的所有 PNG:
mogrify \
-resize 50x50 \
-background transparent \
-gravity center \
-extent 50x50 \
-format png \
-path resized \
*.png
莫格里菲是 ImageMagick 包中的一个命令。您必须先创建输出目录。
答案3
这是我最终选择的方法。分为两个步骤:
gm convert \
-thumbnail '40x40>' \
-background transparent \
-gravity center \
-extent 40x40 \
original.png \
intermediate.png
gm composite \
-compose in \
intermediate.png \
mask.png \
out.png
其中 mask.png 是白色像素,代表我想要保留的内容,透明像素代表我想要屏蔽(丢弃)的内容。