使用 Python 脚本将 JPG 批量转换为 WEBP 格式

在转换为 WEBP 格式 的同时,通过调整尺寸来控制文件大小,并尽量保持画质不变。下面的代码会将图片尺寸调整为 2048 像素宽度,保持高度按比例缩放。


1. 安装 Python 环境

首先,确保你的电脑上已经安装了 Python。

步骤:

  1. 检查是否已安装 Python
    打开 命令提示符 (CMD)终端 (Terminal),输入以下命令查看 Python 版本: python --version
    • 如果显示版本号(如 Python 3.10.4),表示已安装。
    • 如果报错,前往 Python 官网 下载并安装最新版本。
  2. 安装 pip(Python 包管理工具)
    执行以下命令确保 pip 已安装: pip --version
    • 如果正常显示版本,表示已安装。
    • 如果未安装,可参考 pip 安装指南

2. 安装 Pillow 库

Pillow 是处理图片的 Python 库,我们需要用它来完成格式转换。

CMD终端 中执行:

pip install pillow
  • 安装完成后,你可以输入以下命令验证: python -c "from PIL import Image; print('Pillow 已安装')"
  • 如果显示 Pillow 已安装,说明库安装成功。

3. 编写 Python 脚本

步骤:

  1. 创建一个工作文件夹,例如:jpg_to_webp
  2. 准备你的 JPG 图片
    • jpg_to_webp 文件夹中创建一个子文件夹 input_images,将所有需要转换的 JPG 图片 放进去。
  3. 创建 Python 脚本文件
    • jpg_to_webp 文件夹中,新建一个文本文件,命名为 convert_to_webp.py
    • 将以下代码复制粘贴进去:
import os
from PIL import Image

# 设置输入输出文件夹路径
input_folder = r"C:\Users\86153\Downloads\jpg"  # 输入文件夹
output_folder = r"C:\Users\86153\Downloads\output_webp"  # 输出文件夹
target_width = 2048  # 设置目标宽度

# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)

# 批量转换 JPG 到 WEBP 并调整尺寸
for filename in os.listdir(input_folder):
    if filename.lower().endswith(".jpg") or filename.lower().endswith(".jpeg"):
        img_path = os.path.join(input_folder, filename)
        
        # 打开图片并获取原始尺寸
        img = Image.open(img_path)
        original_width, original_height = img.size

        # 计算按比例缩放的高度
        scale_ratio = target_width / original_width
        target_height = int(original_height * scale_ratio)
        
        # 调整图片大小
        img_resized = img.resize((target_width, target_height), Image.LANCZOS)
        
        # 保存为 WEBP 格式
        webp_filename = os.path.splitext(filename)[0] + ".webp"
        output_path = os.path.join(output_folder, webp_filename)
        img_resized.save(output_path, "WEBP", quality=85)  # 调整 quality 以控制压缩率
        
        print(f"已转换并调整尺寸: {filename} -> {webp_filename} ({target_width}x{target_height})")

print("所有图片已成功转换为 WEBP 并调整尺寸!")

4. 运行脚本

  1. 将你的 JPG 图片放入 input_images 文件夹中。
  2. 打开 CMD终端,导航到脚本所在的目录。例如: cd path\to\jpg_to_webppath\to\jpg_to_webp 替换为你的实际路径。
  3. 执行 Python 脚本: python convert_to_webp.py
  4. 等待程序执行
    • 程序会扫描 input_images 文件夹中的所有 JPG 图片。
    • 转换后的 WEBP 文件 会保存在 output_images_webp 文件夹中。
    • 转换完成后,你会看到类似以下输出: 已转换: example1.jpg -> example1.webp 已转换: example2.jpg -> example2.webp 所有 JPG 图片已成功转换为 WEBP 格式!

代码说明:

  1. 目标宽度设置:通过 target_width 将图片的宽度调整为 2048 像素,高度会自动按比例缩放,保持原始画面不变形。
  2. 图像缩放算法
    使用 Image.LANCZOS 算法,这是高质量的图像缩放算法,适合缩小图片尺寸。
  3. 保存时的画质控制
    • quality=85 表示 WEBP 格式保存时的压缩质量,范围 0-100。85 是一个平衡点,通常不会影响画质但可以显著减小文件大小。
    • 如果你想更小的文件,可以降低质量到 70~80
  4. 文件夹路径
    修改 input_folderoutput_folder 为你的实际路径。

脚本注意事项:

  1. 文件夹路径:确保 input_folderoutput_folder 路径正确。
  2. 图片格式:脚本只处理 JPG 和 JPEG 格式的图片。
  3. 输出文件覆盖:如果文件名重复,输出文件会被覆盖。

常见问题解决

  1. 报错:Pillow 未安装
    解决:重新执行 pip install pillow 安装库。
  2. 找不到 Python 脚本文件
    解决:确保导航到脚本所在目录后再运行。
  3. 转换速度慢
    如果图片太多或过大,可能耗时较长,可以考虑优化图片尺寸。
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容