不会还有人在手动压缩PNG图片吗?
属于你的TinyPNG懒人压缩脚本
「观感度:🌟🌟🌟🌟🌟」
「享用时间:1min」
直接粗暴 上源码
#!/bin/bash
# curl --user api:Your_KEY --data-binary shine (1).png -i https://api.tinify.com/shrink
API_KEY=YOUR_KEY
cd ./optimize\ pic #进入指定目录
dir=$(ls ./)
IFS=$(echo -en "\n\b")
# 通过curl对接api压缩文件
for f in $dir; do
JSON=$(curl --user api:$API_KEY --data-binary "@$f" -i https://api.tinify.com/shrink)
RESULT=${JSON##*url\":\"} # 截取JSON中 "url:" 后的字符串
RESULT=${RESULT%%\"\}\}} # 截取RESULT中 ""}}前的字符串
IMAGE=${f%.*}' (1)'.${f##*.} # 缓存压缩后的文件,同时为了解决同名冲突追加后缀(1)
curl "$RESULT" -o "$IMAGE" # -o 参数将服务器的回应保存成文件,等同于wget命令
rm -rf $f # 删除源文件
done
# 再读取一次文件目录,将压缩后的文件进行更名
dir1=$(ls ./)
for i in $dir1; do
STR1=$(echo $i | cut -d' ' -f1)
echo $i $STR1'.png'
mv $i $STR1'.png'
done
食用指南
1.shell脚本和要压缩的文件夹同级存放,需要压缩的图片统一放在optimize pic目录下;
2.为压缩目录和脚本设置所有人“读、写、执行”权限
$ chmod -R 777 optimize\ pic
$ chmod -R 777 saveOptimized.sh
3.放飞自我
./saveOptimized.sh
4.欣赏成果
总结
最近在使用tinyPNG压缩项目中的静态资源,发现人工“点击上传-压缩-下载-更名”操作异常繁琐,打开tinyPNG开发者API提供了对应的接口,通过curl指令操作文件即可实现操作。