图像缩小脚本在linux

时间:2017-01-06 00:31:22

标签: linux bash shell ubuntu wallpaper

我有以下脚本名为wallpaperise.sh,它采用图像并将其转换为相同的自己,只有16:9的分辨率。

## Usage: ./wallpaperise.sh <imagename.jpg>

aw=16   #desired aspect ratio width...
ah=9    #and height

in="$1"
out="wallpaperised_$1"

wid=`convert "$in" -format "%[w]" info:`
hei=`convert "$in" -format "%[h]" info:`

tarar=`echo $aw/$ah | bc -l`
imgar=`convert "$in" -format "%[fx:w/h]" info:`

if (( $(bc <<< "$tarar > $imgar") ))
then
  nhei=`echo $wid/$tarar | bc`
  convert "$in" -gravity center -crop ${wid}x${nhei}+0+0 "$out"
elif (( $(bc <<< "$tarar < $imgar") ))
then
  nwid=`echo $hei*$tarar | bc`
  convert "$in" -gravity center -crop ${nwid}x${hei}+0+0 "$out"
else
  cp "$in" "$out"
fi

问题是它创建的图像(,即使它根本不会改变图像)的文件大小比原始图像大?

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用ImageMagick的转换转换JPEG时,您可以选择自己的文件大小-quality 1(微小)到-quality 100(巨大)。

如标志名称所示,文件大小与图像质量直接相关。

如果你没有指定一个,ImageMagick's documentation表示会尝试猜测输入的质量等级,如果不能,则默认为92。在您的情况下,保守地选择更高质量的设置并产生更大的文件。

你可以尝试例如-quality 80,看看它的外观,并根据您的需要增加或减少。