在转换为 WEBP 格式 的同时,通过调整尺寸来控制文件大小,并尽量保持画质不变。下面的代码会将图片尺寸调整为 2048 像素宽度,保持高度按比例缩放。
1. 安装 Python 环境
首先,确保你的电脑上已经安装了 Python。
步骤:
- 检查是否已安装 Python
打开 命令提示符 (CMD) 或 终端 (Terminal),输入以下命令查看 Python 版本:python --version
- 如果显示版本号(如
Python 3.10.4
),表示已安装。 - 如果报错,前往 Python 官网 下载并安装最新版本。
- 如果显示版本号(如
- 安装 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 脚本
步骤:
- 创建一个工作文件夹,例如:
jpg_to_webp
。 - 准备你的 JPG 图片:
- 在
jpg_to_webp
文件夹中创建一个子文件夹input_images
,将所有需要转换的 JPG 图片 放进去。
- 在
- 创建 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. 运行脚本
- 将你的 JPG 图片放入 input_images 文件夹中。
- 打开 CMD 或 终端,导航到脚本所在的目录。例如:
cd path\to\jpg_to_webp
将path\to\jpg_to_webp
替换为你的实际路径。 - 执行 Python 脚本:
python convert_to_webp.py
- 等待程序执行:
- 程序会扫描
input_images
文件夹中的所有 JPG 图片。 - 转换后的 WEBP 文件 会保存在
output_images_webp
文件夹中。 - 转换完成后,你会看到类似以下输出:
已转换: example1.jpg -> example1.webp 已转换: example2.jpg -> example2.webp 所有 JPG 图片已成功转换为 WEBP 格式!
- 程序会扫描
代码说明:
- 目标宽度设置:通过
target_width
将图片的宽度调整为 2048 像素,高度会自动按比例缩放,保持原始画面不变形。 - 图像缩放算法:
使用Image.LANCZOS
算法,这是高质量的图像缩放算法,适合缩小图片尺寸。 - 保存时的画质控制:
quality=85
表示 WEBP 格式保存时的压缩质量,范围 0-100。85 是一个平衡点,通常不会影响画质但可以显著减小文件大小。- 如果你想更小的文件,可以降低质量到 70~80。
- 文件夹路径:
修改input_folder
和output_folder
为你的实际路径。
脚本注意事项:
- 文件夹路径:确保
input_folder
和output_folder
路径正确。 - 图片格式:脚本只处理 JPG 和 JPEG 格式的图片。
- 输出文件覆盖:如果文件名重复,输出文件会被覆盖。
常见问题解决
- 报错:Pillow 未安装
解决:重新执行pip install pillow
安装库。 - 找不到 Python 脚本文件
解决:确保导航到脚本所在目录后再运行。 - 转换速度慢
如果图片太多或过大,可能耗时较长,可以考虑优化图片尺寸。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容