使用 libwebp 高效批量转换图片至 WebP 格式

使用 libwebp 高效批量转换图片至 WebP 格式

WebP 是一种现代图像格式,可为 Web 上的图像提供出色的无损和有损压缩。使用 WebP,网站管理员和 Web 开发人员可以创建尺寸更小、内容更丰富的图像,从而使 Web 更快。本文将指导您如何使用 Google 官方提供的 libwebp 工具包批量将您现有的图片(如 JPG, PNG, BMP, GIF 等)转换为 WebP 格式。

1、下载libwebp

打开https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html,划到底部找到最新版本,根据操作系统选择合适的版本。

比如Windows选择 libwebp-1.4.0-windows-x64.zip ,macOS X86选择 libwebp-1.4.0-rc1-mac-x86-64.tar.gz ,macOS ARM选择 libwebp-1.4.0-rc1-mac-arm64.tar.gz ……根据你的实际情况来

2、准备脚本

将下载的文件解压,在解压出来的文件夹旁边再创建两个叫“input”和“output”的文件夹,然后»>

Windows

创建一个名为c.bat的脚本文件,并用记事本写入:

@echo offss
setlocal enabledelayedexpansion

:: 设置输入文件夹路径
set "input_folder_path=input"

:: 设置输出文件夹路径
set "output_folder_path=output"

:: 检查输出文件夹是否存在,如果不存在则创建
if not exist "%output_folder_path%" mkdir "%output_folder_path%"

:: 设置cwebp工具的路径,如果cwebp在环境变量中,则不需要设置
:: set "cwebp_path=C:\path\to\cwebp\cwebp.exe"

:: 遍历输入文件夹中的所有图像文件
for %%i in ("%input_folder_path%\*.jpg", "%input_folder_path%\*.jpeg", "%input_folder_path%\*.png", "%input_folder_path%\*.bmp", "%input_folder_path%\*.gif") do (
    :: 构建输出文件名
    set "output_file=%output_folder_path%\%%~ni.webp"

    :: 使用cwebp转换图像文件
    :: 如果cwebp在环境变量中,直接使用cwebp,否则使用完整的路径
    :: 替换下面的cwebp为%cwebp_path%,如果你设置了cwebp工具的路径
    cwebp -q 80 "%%i" -o "!output_file!"

    :: 输出转换结果
    echo Converted %%i to !output_file!
)

echo All images have been converted.
endlocal
macOS/Linux

创建一个名为c.sh的脚本文件,并用纯文本编辑器写入:

#!/bin/bash

input_folder="./input"
output_folder="./output"
cwebp_folder="/Users/yanyige/Desktop/libwebp-1.4.0-rc1-mac-x86-64/bin/"
#cwebp的位置,改成你自己的

# 创建输出文件夹(如果不存在)
mkdir -p "$output_folder"

# 遍历输入文件夹中的图像文件
for img in "$input_folder"/*.{jpg,jpeg,png}; do
    # 检查文件是否存在
    [ -e "$img" ] || continue

    # 获取文件名和扩展名
    filename=$(basename "$img")
    extension="${filename##*.}"
    filename_no_ext="${filename%.*}"

    # 转换为 WebP 格式
    "$cwebp_folder"cwebp "$img" -o "$output_folder/${filename_no_ext}.webp"
done

保存好,最后,确认libwebp文件夹、input文件夹、output文件夹、c.ps1(sh)脚本在同一文件夹,脚本中的路径替换为实际的

3、使用

将你需要转换的图片放到input文件夹,运行c.bat(sh)

如果你看到终端大量类似这样的提示

Saving file './output/images1.webp'
File:      ./input/images1.jpg
Dimension: 1920 x 1080
Output:    25226 bytes Y-U-V-All-PSNR 48.27 48.33 49.54   48.47 dB
           (0.10 bpp)
block count:  intra4:       1076  (13.19%)
              intra16:      7084  (86.81%)
              skipped:      4414  (54.09%)
bytes used:  header:            120  (0.5%)
             mode-partition:   7875  (31.2%)
 Residuals bytes  |segment 1|segment 2|segment 3|segment 4|  total
    macroblocks:  |       3%|       5%|       3%|      89%|    8160
      quantizer:  |      36 |      36 |      31 |      24 |
   filter level:  |      11 |       9 |      27 |      10 |

打开output文件夹也有很多生成的webp文件,那就说明可以了。

评论