有没有办法用背景色填充图像以使其变为正方形?

有没有办法用背景色填充图像以使其变为正方形?

让我描述一下我的问题:

我有一个网站,我会在上面发布赞助商公司的徽标。一旦我收到徽标(或者我在谷歌上搜索过),它们通常都是矩形大小 - 宽度和高度不相等。
在我的网站上,一旦您上传徽标图像,您就可以将其裁剪为正方形。

对于矩形徽标,我通常在 GIMP 中打开它们,将画布大小增加到正方形,创建一个背景颜色的新图层,最后将其导出为 jpg 或 png 供网站使用。相当耗时。

我正在寻找一种方法来希望仅使用终端命令即可做到这一点。

例子:

请看下面的 Safaricom(肯尼亚电信公司)徽标。它的尺寸为 650px x 380px - 我怎样才能将其设置为 650px x 650px,然后通过命令行将其水平居中?

Safaricom 徽标

答案1

您可以使用以下命令,该命令需要imagemagicksudo apt-get install imagemagick):

pic="ty338.png"; convert $pic -trim $pic ; width=$(identify -format "%w" $pic); height=$(identify -format "%h" $pic); new_dim=$((width > height ? width+10 : height+10)); convert $pic -gravity center -extent "${new_dim}x${new_dim}" $pic
  • 第一个convert命令修剪图片以删除边框
  • 然后我用它identify来找到最大尺寸(宽度或高度)
  • 我添加了一个 10px 边框(您可以随意更改或删除它)
  • convert最后,使用最后一个命令-gravity将徽标置于方形画布的中心。

您甚至可以将此命令粘贴到您的 bash 函数中$HOME/.bashrc

squarize()
{
    pic=$1
    convert $pic -trim $pic
    width=$(identify -format "%w" $pic)
    height=$(identify -format "%h" $pic)
    new_dim=$((width > height ? width+10 : height+10))
    convert $pic -gravity center -extent "${new_dim}x${new_dim}" $pic
}

相关内容