guetzli是google出品的一款针对图片压缩的算法,官方只出了简单的命令行,针对单张图片优化命令,如果是整个文件夹的文件需要处理,显得不友好,这里从全球最大的同性交友平台获得一段批处理脚本,可以对整个文件夹内的图片做处理。这样的话,不需要在本地处理图片,直接在服务器端,利用服务器强大的硬件资源来优化图片。
#!/bin/bash SAVEIFS=$IFS IFS=$(echo -en "\n\b") #cmd 是 guetzli可执行文件的绝对路径,请依据实际情况修改 cmd="guetzli " target="*.jpg" while [ ! $# -eq 0 ] do case "$1" in --verbose | -v) cmd="${cmd}--verbose " ;; --quality | -q) shift cmd="${cmd}--quality $1 " shift ;; --target | -t) shift target="$1" shift ;; *) args="$1"; ;; esac shift done workingPath="${PWD}/${args}" # Delete optimized folder rm -rf "${workingPath}/optimized" # Create new optimized folder mkdir "${workingPath}/optimized" for f in ${workingPath}/${target}; do #echo "Optimizing - ${f##*/}" eval ${cmd}"\"${f}\"" "\"${workingPath}/optimized/${f##*/}\"" done IFS=$SAVEIFS
脚本可选参数:
--verbose 压缩信息输出到终端 --quality 压缩文件质量度,默认是95 --target 允许只对某一个单独的图片文件处理,而不是文件夹内全部的图片
使用方法:
~/optimize.sh {[--options]} {relative folder path}
几种具体的使用方法,例如:
1.将此脚本写入文件optimize.sh。然后将这个文件丢到需要处理的图片文件夹内,执行
optimize.sh {-v -q 85} .
2.optimize.sh文件不动
~/optimize.sh {-v -q 85} /path/to/images/folder/
注意事项:
命令必须带参数,不然无法执行。
项目地址:https://github.com/sowhatdoido/guetzli-batch-script