图片压缩脚本

我是研究僧i 提交于 2020-08-09 15:43:43

1 概述

使用convert命令做的小型图片压缩脚本,只需要一个参数指定压缩质量,会压缩当前文件夹的jpg/jpeg/png。

sh compress.sh 75

压缩完成后会显示最大最小以及平均压缩率。

2 主要流程

先判断当前文件夹是否存在图片,以及获取图片数量:

picNums=`ls | grep -iE "*.jpg|*.png|*.jpeg" | grep -v "_compress" | wc -l`

接着计算原来文件大小,并分离文件名,得到主文件名与后缀名:

originalSize=`ls -l $i | awk '{print $5}'`
basename=`basename $i`
filename="${basename%.*}"
suffix="${basename##*.}"
compressFileName="$filename._compress.$suffix"

再判断主文件名是否含compress(已压缩过的会添加compress,保留原文件),接着计算比率:

convert -quality $1 $i $compressFileName
compressedSize=`ls -l $compressFileName | awk '{print $5}'`
ratio=$(printf "%.2f" `echo "scale=2;$compressedSize/$originalSize"|bc`)
if [[ `echo "$ratio<$minRatio" | bc` == 1 ]]
then
	minRatio=$ratio
fi
if [[ `echo "$ratio>$maxRatio" | bc` == 1 ]]
then
	maxRatio=$ratio
fi
totalRatio=`echo "$totalRatio+$ratio"|bc`

最后显示结果:

在这里插入图片描述

3 完整脚本

github.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!