你知道怎么用脚本批量转换图片格式吗?

wen 实用脚本 42

本文目录导读:

你知道怎么用脚本批量转换图片格式吗?

  1. 使用 Python + Pillow 库
  2. 使用 ImageMagick(命令行工具)
  3. Linux/Mac 批量脚本
  4. 使用 FFmpeg(适合大量图片)
  5. 使用建议

是的,可以使用脚本批量转换图片格式,以下是几种常见的方法:

使用 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:包管理器安装

需要我展示更具体的使用场景吗?

抱歉,评论功能暂时关闭!