自动压缩图片--你的第一个脚本
在往图床上丢图片时,有时候总是因为图片太大而要等很久的时间,面对这种情况压缩图片后再上传是一个不错的选择。但是每次都要先打开图片压缩软件,再丢图片压缩,再找到压缩后的图片,再上传到图床,这一系列操作也是繁琐。今天就来解决一下这个问题。
很显然脚本能够帮助我们自动完成这些烦人的操作。我们希望这个脚本能够自动压缩当前文件夹的所有图片,压缩后将图片转移到另一个文件夹方便查找。
说干就干,lets go!
首先,我们需要安装一个图片压缩软件,这个图片压缩软件要能支持命令行操作,这里选择ImageOptim: https://imageoptim.com ,到官网下载后安装即可。
其次,我们需要安装ImageOptim-CLI,有了它就可以用命令行操作图片压缩软件ImageOptim了。推荐使用npm安装特别是M1芯片的Mac,打开终端输入:
npm install -g imageoptim-cli
安装完成后查看一下版本确定是否安装成功:
imageoptim --version
3.0.7
最后,就是写脚本了:目前我们只压缩png,jpg,jpeg,gif
随便打开一个文本编辑器比如记事本,拷贝下面的代码并保存为 compress.sh
,保存路径随意这里为桌面。
#!/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文件夹。当然这个时候计算机还只是认为它是一个普通的文本文件。我们需要将它赋予可执行属性:
cd ~/Desktop
chmod +x compress.sh
这样compress.sh就变为一个可执行文件了。
最后测试一下效果吧_
在桌面创建一个文件夹pictureStorage,将compress.sh拖入到该文件夹里,再准备几张图片也放入到该文件夹里。
[图片上传失败...(image-4c4ef9-1655625699028)]
执行:
cd ~/Desktop/pictureStorage
./compress.sh
就可看到打印日志:
目前只压缩:*.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文件夹
[图片上传失败...(image-a71594-1655625699029)]
三张图片一共减少了146kB,还是可以的。
以后你就只需要将图片丢到pictureStorage文件夹,然后执行 ./compress.sh
脚本就可以了!完全不需要打开ImageOptim,一张张选了。真是安全又方便!