如何使用命令行的透明度对图像和打击垫进行平方(imagemagick)

bwv*_*549 2 imagemagick

标题为" 方形填充"或"裁剪 "的部分描述了一种生成方形图像的方法 - 对于尺寸未知的文件 - 并使用颜色填充背景.

如何执行相同的操作,但创建透明背景.

Mar*_*ell 9

让我们首先制作一个红色的正方形图像,即300x200:

convert -size 300x200 xc:red image.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在让我们把它做成方形图像,但使用黄色背景,这样你就可以看到它:

convert -background yellow -gravity center image.png -resize 400x400 -extent 400x400 result.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在我们可以再做同样的事情,但让背景透明:

convert -background none -gravity center image.png -resize 400x400 -extent 400x400 result.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

并且,只需检查以确保它有效:

identify result.png
result.png PNG 400x400 400x400+0+0 8-bit sRGB 418B 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)

  • @bmv549 嗯?尺寸不需要知道,我只是把一些尺寸放进去,这样你就可以看到一些东西。您需要知道的只是您想要的输出图像的大小,因此如果您想要 400x400,您将这些数字放入并得到 400x400 - 它完全不依赖于知道原始图像大小。只需执行“convert -background none -gravity center image.png -resize 400x400 -extent 400x400 result.png”,无论输入大小如何,它都可以工作。 (2认同)

Bon*_*nzo 3

安东尼示例中的这些修改方法都对我有用:

  convert thumbnail.gif \
      \( +clone -rotate 90 +clone -mosaic +level-colors grey -transparent grey \) \
      +swap -gravity center -composite    square_padded.gif

convert thumbnail.gif  -virtual-pixel none -set option:distort:viewport \
 "%[fx:max(w,h)]x%[fx:max(w,h)]-%[fx:max((h-w)/2,0)]-%[fx:max((w-h)/2,0)]" \
 -filter point -distort SRT 0  +repage  square_external.gif
Run Code Online (Sandbox Code Playgroud)