本文目录导读:

是的,可以使用脚本批量转换图片格式,以下是几种常见的方法:
使用 Python + Pillow 库
import os
from PIL import Image
def batch_convert_images(input_dir, output_dir, target_format='PNG'):
"""
批量转换图片格式
Args:
input_dir: 输入文件夹路径
output_dir: 输出文件夹路径
target_format: 目标格式('PNG', 'JPEG', 'WEBP'等)
"""
# 创建输出目录
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 支持的输入格式
supported_formats = ('.jpg', '.jpeg', '.png', '.bmp', '.tiff', '.webp')
for filename in os.listdir(input_dir):
if filename.lower().endswith(supported_formats):
input_path = os.path.join(input_dir, filename)
# 生成输出文件名(保持原名,修改扩展名)
output_filename = os.path.splitext(filename)[0] + f'.{target_format.lower()}'
output_path = os.path.join(output_dir, output_filename)
# 转换格式
try:
with Image.open(input_path) as img:
# 如果转换为JPEG,需要转换为RGB模式
if target_format.upper() == 'JPEG':
img = img.convert('RGB')
img.save(output_path, target_format.upper())
print(f'转换成功: {filename} -> {output_filename}')
except Exception as e:
print(f'转换失败 {filename}: {str(e)}')
# 使用示例
batch_convert_images('输入文件夹', '输出文件夹', 'PNG')
使用 ImageMagick(命令行工具)
Windows 或 Linux/Mac:
# 将所有 PNG 转换为 JPG magick mogrify -path 输出文件夹 -format jpg *.png # 将所有 JPG 转换为 WebP magick mogrify -path 输出文件夹 -format webp *.jpg # 保持原图质量(90%) magick mogrify -path 输出文件夹 -quality 90 -format jpg *.png
Linux/Mac 批量脚本
#!/bin/bash
# 批量将 PNG 转 JPG
input_dir="./原图"
output_dir="./转换后"
mkdir -p "$output_dir"
for file in "$input_dir"/*.png; do
if [ -f "$file" ]; then
filename=$(basename "$file" .png)
convert "$file" "$output_dir/$filename.jpg"
echo "转换完成: $file"
fi
done
使用 FFmpeg(适合大量图片)
# 将 PNG 序列转换为 JPEG
ffmpeg -i %04d.png -vcodec mjpeg frame_%04d.jpg
# 批量转换文件夹中的图片
for i in *.png; do ffmpeg -i "$i" "${i%.png}.jpg"; done
使用建议
- 小规模(几十张):Python脚本最灵活
- 大规模(几百张以上):ImageMagick 效率更高
- 需要精细控制质量:使用 Python + Pillow
- 转换动画格式(如 GIF):ImageMagick 或 FFmpeg
需要安装依赖:
- Python:
pip install Pillow - ImageMagick:官网下载安装
- FFmpeg:包管理器安装
需要我展示更具体的使用场景吗?