0%

自动压缩图片--你的第一个脚本

在往图床上丢图片时,有时候总是因为图片太大而要等很久的时间,面对这种情况压缩图片后再上传是一个不错的选择。但是每次都要先打开图片压缩软件,再丢图片压缩,再找到压缩后的图片,再上传到图床,这一系列操作也是繁琐。今天就来解决一下这个问题。

很显然脚本能够帮助我们自动完成这些烦人的操作。我们希望这个脚本能够自动压缩当前文件夹的所有图片,压缩后将图片转移到另一个文件夹方便查找。

说干就干,lets go!

首先,我们需要安装一个图片压缩软件,这个图片压缩软件要能支持命令行操作,这里选择ImageOptim: https://imageoptim.com ,到官网下载后安装即可。

其次,我们需要安装ImageOptim-CLI,有了它就可以用命令行操作图片压缩软件ImageOptim了。推荐使用npm安装特别是M1芯片的Mac,打开终端输入:

1
npm install -g imageoptim-cli

安装完成后查看一下版本确定是否安装成功:

1
2
imageoptim --version
3.0.7

最后,就是写脚本了:目前我们只压缩png,jpg,jpeg,gif

随便打开一个文本编辑器比如记事本,拷贝下面的代码并保存为 compress.sh ,保存路径随意这里为桌面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
png="*.png"
jpg="*.jpg"
jpeg="*.jpeg"
gif="*.gif"
echo "目前只压缩:"$png"、"$jpg"、"$jpeg"、"$gif""
echo "开始压缩"
imageoptim $png $jpg $jpeg $gif
echo "完成压缩"
echo "开始将图片移到compressed文件夹"
mkdir -p compressed
for file in $(find . -maxdepth 1 -name "$png" -or -name "$jpg" -or -name "$jpeg" -or -name "$gif")
do
echo "移动文件:${file}"
mv ${file} compressed
done
echo "完成将图片移到compressed文件夹"

脚本很简单,就是压缩当前文件夹里的png,jpg,jpeg,gif图片,然后将这些压缩好的图片转移到compressed文件夹。当然这个时候计算机还只是认为它是一个普通的文本文件。我们需要将它赋予可执行属性:

1
2
cd ~/Desktop
chmod +x compress.sh

这样compress.sh就变为一个可执行文件了。

最后测试一下效果吧^_^

在桌面创建一个文件夹pictureStorage,将compress.sh拖入到该文件夹里,再准备几张图片也放入到该文件夹里。

执行:

1
2
cd ~/Desktop/pictureStorage
./compress.sh

就可看到打印日志:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
目前只压缩:*.png、*.jpg、*.jpeg、*.gif
开始压缩
Running ImageOptim...
✓ 疑问.png was: 223kB now: 180kB saving: 43.3kB (19.44%)
✓ v2-ae634956702d53f64862c9fe58691e7d_1440w.jpg was: 22.3kB now: 5.39kB saving: 16.9kB (75.86%)
✓ 王境泽1.gif was: 1.02MB now: 935kB saving: 85.4kB (8.37%)
✓ TOTAL was: 1.27MB now: 1.12MB saving: 146kB (11.51%)
✓ Finished
完成压缩
开始将图片移到compressed文件夹
移动文件:./疑问.png
移动文件:./王境泽1.gif
移动文件:./v2-ae634956702d53f64862c9fe58691e7d_1440w.jpg
完成将图片移到compressed文件夹

三张图片一共减少了146kB,还是可以的。

以后你就只需要将图片丢到pictureStorage文件夹,然后执行 ./compress.sh 脚本就可以了!完全不需要打开ImageOptim,一张张选了。真是安全又方便!

觉得文章有帮助可以打赏一下哦!