Par*_*rto 5 command-line bash gimp imagemagick image-processing
让我描述一下我的问题:
我有一个网站,我张贴赞助商公司的标志。一旦我收到徽标(或者我用谷歌搜索过),它们通常是矩形大小 - 宽度和高度不相等。
在我的网站上,一旦您上传徽标图像,就可以将其裁剪为正方形。
对于矩形的标志,我通常在 GIMP 中打开它们,将画布大小增加到一个正方形,创建一个新的背景颜色层,最后将其导出为 jpg 或 png 格式供站点使用。相当费时间。
我正在寻找一种方法来做到这一点,希望只用一个终端命令。
考虑下面的 Safaricom(肯尼亚电信公司)徽标。它是 650 像素 x 380 像素 - 我怎样才能让它 650 像素 x 650 像素,然后从命令行将它水平居中?
您可以使用以下需要imagemagick
( sudo 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
Run Code Online (Sandbox Code Playgroud)
convert
命令修剪您的图片以去除边框identify
用来找到最大尺寸(宽度或高度)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
}
Run Code Online (Sandbox Code Playgroud)