简介
WebP 是一种新型的图片格式,可以为网站上的图片提供卓越的无损和有损压缩。使用 WebP,网站站长和 Web 开发者可以制作更小、更丰富的图片,从而提升网页加载速度。
WebP 无损图片的大小比 PNG 图片小 26% 。WebP 有损图片比采用等效 SSIM 质量索引的同类 JPEG 图片缩小 25-34% 。
无损 WebP 支持透明度(也称为 Alpha 通道),费用仅为 22% 的额外字节。在可以接受有损 RGB 压缩的情况下,有损 WebP 也支持透明度,其提供的文件大小通常比 PNG 小 3 倍。
动画 WebP 图片均支持有损、无损和透明度,与 GIF 和 APNG 相比,这种格式可以减小文件大小。
cwebp 是 Google 官方的开源命令后工具,支持将 PNG、JPEG 等格式的图片转换为 WebP。
安装
在 Mac 下,可以使用 brew install webp
安装。
转换
转换的方式也很简单,使用默认配置:
cwebp znl_log.png -o znl_log.webp
可用参数
https://developers.google.com/speed/webp/docs/cwebp?hl=zh-cn
批量转换脚本
#!/bin/bash
# 检查参数是否正确
if [ $# -ne 3 ]; then
echo "Usage: $0 <input_path> <output_path> <quality>"
exit 1
fi
# 获取参数
input_path=$1
output_path=$2
quality=$3
# 创建输出目录(如果不存在)
mkdir -p $output_path
# 查找所有符合条件的图片文件
find $input_path -type f \( -iname \*.jpg -o -iname \*.jpeg -o -iname \*.png \) -print0 | while IFS= read -r -d '' file
do
# 构建输出路径
rel_path=${file#$input_path}
out_file="$output_path$rel_path"
out_dir=$(dirname "$out_file")
# 创建目录结构
mkdir -p "$out_dir"
# 转换图片
cwebp -q $quality -quiet "$file" -o "$out_file"
echo "Converted $file to $out_file"
done
脚本使用方式
- 将上述脚本保存为一个 .sh 文件,比如 convert_images.sh。
- 给脚本文件执行权限:chmod +x convert_images.sh。
- 运行脚本,指定输入路径、输出路径和质量参数。例如:
./convert_images.sh /path/to/input/images/ /path/to/output/images/ 80
这个脚本会遍历输入路径下的所有图片文件(以.jpg、.jpeg和.png结尾的文件),将它们转换为webp格式,并保持相同的目录结构到输出路径下。