Linux命令行转JPG/JPEG/PNG为WebP后文件大小未变求助
问题原因
你的脚本里第二行的cp命令完全覆盖了cwebp生成的WebP文件:
cp --preserve=mode "$file" "${file%.*}.webp"
这一步是把原格式(jpg/png)的文件直接复制并替换了刚刚通过cwebp转换得到的WebP文件,所以你看到的"WebP文件"本质还是原文件改了后缀,大小自然和原文件一致。
修复方案
直接删除脚本中的cp命令即可,正确的转换脚本如下:
for file in *.jpg *.jpeg *.png; do cwebp "$file" -o "${file%.*}.webp"; done
可选优化:控制压缩质量
cwebp默认使用75的质量参数(-q 75),你可以手动调整这个值来平衡文件大小和画质:
- 想要更小的文件:降低质量值,比如
cwebp -q 50 "$file" -o "${file%.*}.webp" - 想要更高的画质:提高质量值,最高到100,比如
cwebp -q 90 "$file" -o "${file%.*}.webp"
内容的提问来源于stack exchange,提问作者Jacob
相关产品推荐
相关产品推荐

