不会吧不会吧!不会还有人在手动压缩PNG图片吧?

688 阅读1分钟

不会还有人在手动压缩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指令操作文件即可实现操作。

提效提效提效max!