chaihongjun.me

guetzli在linux平台下的批处理脚本工具

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

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。作者:柴宏俊»