Featured image of post 一个图片压缩脚本

一个图片压缩脚本

调用OptiPNG、jpegoptim工具自动完成批量压缩图片

支持格式

支持 .jpg/.jpeg/.bmp/.png 格式图片
先使用 find 命令查找指定目录图片(同时对图片大小和时间进行了筛选)
根据不同的图片格式调用不同的压缩工具,配合crontab定时任务工具自动批量压缩。

安装依赖

脚本需要调用OptiPNG和jpegoptim这两个工具,安装OptiPNG、jpegoptim是必须的

1
2
apt install optipng
apt install jpegoptim

脚本代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
##########    name:图片压缩脚本                    ##########
##########    author:xiaoz<[email protected]>    ##########
##########    Blog:https://www.xiaoz.me/            ##########
##########    update:2019-08-23                    ##########

#导入环境变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
export PATH

#设置图片绝对路径
imgpath=''
#最低图片大小,高于此大小的图片才会进行压缩
min_size='100k'

#判断图片路径是否为空
if [ -z $imgpath ]
then
    imgpath=$1
fi

if [ -z $imgpath ]
then
    echo 'The image path cannot be empty!'
    exit
fi

#压缩png/jpg/bmp图像
function com_img(){
    #使用optipng压缩.png和.bmp
    find $1 -mmin -60 -size +$2 -name '*.png' -exec optipng -o3 {} \;
    find $1 -mmin -60 -size +$2 -name '*.bmp' -exec optipng -o3 {} \;

    #使用jpegoptim压缩.jpg
    find $1 -mmin -60 -size +$2 -name '*.jpg' -exec jpegoptim -m 80 {} \;
    find $1 -mmin -60 -size +$2 -name '*.jpeg' -exec jpegoptim -m 80 {} \;
}

#调用压缩函数
com_img $imgpath $min_size

调用格式

1
bash /path/img_compress.sh /path/images_folder

源码:https://github.com/helloxz/shell/blob/master/img_compress.sh

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计