脚本怎样批量翻转图片方向

wen 实用脚本 29

本文目录导读:

脚本怎样批量翻转图片方向

  1. 方法一:使用 Python + Pillow 库(最灵活,推荐)
  2. 方法二:使用 ImageMagick(命令行高手首选)
  3. 方法三:使用批量重命名工具(适合简单旋转,如手机照片)
  4. 总结建议

使用 Python + Pillow 库(最灵活,推荐)

这是最通用的方法,适用于Windows、macOS和Linux,Pillow是Python最强大的图像处理库。

安装依赖 确保安装了Python和Pillow库:

pip install Pillow

Python 脚本:批量翻转图片 创建一个名为 batch_flip.py 的文件,复制以下代码:

import os
from PIL import Image
# 配置区
input_folder = "./input_images"   # 源图片文件夹
output_folder = "./output_images" # 输出图片文件夹
flip_mode = "horizontal"          # 翻转模式: "horizontal" 水平, "vertical" 垂直, "both" 两者都做
supported_formats = ('.jpg', '.jpeg', '.png', '.bmp', '.tiff', '.webp') # 支持的格式
def flip_images():
    # 创建输出文件夹
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
        print(f"已创建输出文件夹: {output_folder}")
    # 遍历输入文件夹
    image_count = 0
    for filename in os.listdir(input_folder):
        if filename.lower().endswith(supported_formats):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, filename)
            try:
                img = Image.open(input_path)
                # 根据模式翻转
                if flip_mode == "horizontal":
                    flipped_img = img.transpose(Image.FLIP_LEFT_RIGHT)
                elif flip_mode == "vertical":
                    flipped_img = img.transpose(Image.FLIP_TOP_BOTTOM)
                elif flip_mode == "both":
                    flipped_img = img.transpose(Image.FLIP_LEFT_RIGHT)
                    flipped_img = flipped_img.transpose(Image.FLIP_TOP_BOTTOM)
                else:
                    print(f"错误:不支持的翻转模式 '{flip_mode}'")
                    return
                # 保存翻转后的图片(保持原格式和质量)
                flipped_img.save(output_path, quality=95)
                print(f"已翻转: {filename}")
                image_count += 1
            except Exception as e:
                print(f"处理 {filename} 时出错: {e}")
    print(f"\n完成!总共处理了 {image_count} 张图片。")
    print(f"翻转模式: {flip_mode},输出文件夹: {output_folder}")
if __name__ == "__main__":
    # 检查输入文件夹是否存在
    if not os.path.exists(input_folder):
        print(f"错误:输入文件夹 '{input_folder}' 不存在!")
        print("请创建该文件夹或修改脚本中的 input_folder 路径。")
    else:
        flip_images()

使用说明

  • 在脚本同目录下创建 input_images 文件夹,放入需要翻转的图片。
  • 运行脚本:python batch_flip.py
  • 翻转后的图片会出现在 output_images 文件夹中。
  • 自定义:修改脚本顶部 flip_mode"vertical" 可垂直翻转,"both" 可同时水平+垂直翻转。

使用 ImageMagick(命令行高手首选)

ImageMagick 是强大的命令行图像处理工具,非常适合批量操作。

安装 ImageMagick

  • Windows: 下载安装程序,安装时勾选“Add application directory to PATH”
  • macOS: brew install imagemagick
  • Linux: sudo apt-get install imagemagick

批量翻转命令

水平翻转(镜像):

# Windows (CMD)
for %i in (*.jpg) do magick "%i" -flop "flipped_%i"
# macOS / Linux
for i in *.jpg; do magick "$i" -flop "flipped_$i"; done

垂直翻转:

# Windows
for %i in (*.jpg) do magick "%i" -flip "flipped_%i"
# macOS / Linux
for i in *.jpg; do magick "$i" -flip "flipped_$i"; done

旋转90度、180度、270度:

# 顺时针旋转90度
for i in *.jpg; do magick "$i" -rotate 90 "rotated_$i"; done
# 旋转180度
for i in *.jpg; do magick "$i" -rotate 180 "rotated_$i"; done

使用批量重命名工具(适合简单旋转,如手机照片)

很多照片因为手机方向传感器导致显示方向错误,但图片本身并没有被真正翻转,这种情况更适合用工具修复EXIF方向标。

推荐工具:

  1. XnConvert (免费, 跨平台)

    • 添加图片 → 操作 → 变换 → 翻转/旋转
    • 输出标签页选择输出文件夹和格式
  2. PhotoScape X (Windows)

    • 选择“批量处理” → 添加图片
    • 选择“旋转”功能
  3. macOS 预览应用

    • 选中所有图片 → 打开预览
    • 菜单栏:工具 → 旋转(这个只能一次一张,不推荐大批量)

总结建议

场景 推荐方法
需要编程控制、集成到工作流 Python + Pillow 脚本
日常少量批量操作 XnConvert GUI工具
命令行高效处理 ImageMagick
手机照片方向错误(非真正翻转) 先尝试用EXIF修复工具,如 exiftool

如果需要处理几十万张图片,Python脚本可以添加多线程支持以提升速度。

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