如何为透明PNG文件添加背景?

How to add a background to a transparent PNG file?

我正在尝试使用 ImageMagick 将 PNG 文件作为背景添加到具有透明区域的 PNG 图像中,如下所示:

convert input.png -texture bg.png output.png

到目前为止,我还没有找到如何将背景填充到 100% 宽度/高度的方法,因为上面的示例不起作用。我最终得到了相同的透明文件,我不知道为什么。

如何在整个文件中应用使用完整 width/height 的背景? (最好使用cover方法,意思是保持背景的纵横比和切割重叠)

如果你想在 Unix 上平铺背景,试试

convert input.png \( +clone -tile bg.png -draw "color 0,0 reset" \) +swap -compose over -composite output.png

在 Windows:

convert input.png ( +clone -tile bg.png -draw "color 0,0 reset" ) +swap -compose over -composite output.png

如果您只想调整背景大小,那么在 Unix 上试试

dims=$( convert input.png -format "%wx%h" info: )
convert input.png \( bg.png -resize $dims +repage \) +swap -compose over -composite output.png

我也不知道Windows那好告诉你怎么做变量

在 ImageMagick 7 上,在 Unix 中,您可以更轻松地做到这一点:

magick input.png -set option:dims "%wx%h" \( bg.png -resize "%[dims]" \) +swap -compose over -composite output.png

或 Windows:

magick input.png -set option:dims "%wx%h" ( bg.png -resize "%[dims]" ) +swap -compose over -composite output.png