本文目录导读:

- 方法一:使用 Python + Pillow(最灵活)
- 方法二:使用 OpenCV(适合更多高级处理)
- 方法三:使用 ImageMagick(命令行工具)
- 方法四:使用 Photoshop 动作(可视化操作)
- 方法五:批处理脚本(Windows)
- 安装依赖
- 高级功能示例
使用 Python + Pillow(最灵活)
from PIL import Image, ImageEnhance
import os
import glob
def batch_adjust_brightness(input_folder, output_folder, brightness_factor):
"""
批量调整图片亮度
brightness_factor: 亮度因子,1.0为原始亮度
>1.0 变亮,<1.0 变暗
"""
# 创建输出文件夹
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 支持多种图片格式
formats = ['*.jpg', '*.jpeg', '*.png', '*.bmp', '*.gif']
for format in formats:
for file_path in glob.glob(os.path.join(input_folder, format)):
# 打开图片
img = Image.open(file_path)
# 调整亮度
enhancer = ImageEnhance.Brightness(img)
img_bright = enhancer.enhance(brightness_factor)
# 保存图片
filename = os.path.basename(file_path)
output_path = os.path.join(output_folder, filename)
img_bright.save(output_path)
print(f"已处理: {filename}")
# 使用示例
batch_adjust_brightness('input_folder', 'output_folder', 1.5) # 变亮50%
使用 OpenCV(适合更多高级处理)
import cv2
import os
import glob
import numpy as np
def batch_adjust_brightness_opencv(input_folder, output_folder, brightness_value):
"""
使用OpenCV调整亮度
brightness_value: -255到255,正值变亮,负值变暗
"""
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for file_path in glob.glob(os.path.join(input_folder, '*')):
if file_path.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp')):
# 读取图片
img = cv2.imread(file_path)
# 调整亮度
adjusted = cv2.convertScaleAbs(img, alpha=1, beta=brightness_value)
# 保存图片
filename = os.path.basename(file_path)
output_path = os.path.join(output_folder, filename)
cv2.imwrite(output_path, adjusted)
print(f"已处理: {filename}")
# 使用示例
batch_adjust_brightness_opencv('input', 'output', 50) # 增加亮度50
使用 ImageMagick(命令行工具)
# 批量调整亮度(亮度因子为1.2,即增加20%) for file in *.jpg; do convert "$file" -modulate 120,100,100 "bright_$file" done # 或者使用 mogrify 直接修改 mogrify -modulate 120,100,100 *.jpg
使用 Photoshop 动作(可视化操作)
- 打开Photoshop
- 窗口 > 动作(创建新动作)
- 记录调整亮度操作
- 文件 > 自动 > 批处理
- 选择源文件夹和目标文件夹
批处理脚本(Windows)
@echo off
setlocal enabledelayedexpansion
set input_folder=C:\input
set output_folder=C:\output
set brightness=120
if not exist "%output_folder%" mkdir "%output_folder%"
for %%f in ("%input_folder%\*.*") do (
echo Processing: %%~nxf
python -c "
import sys
from PIL import Image, ImageEnhance
img = Image.open(r'%%f')
enhancer = ImageEnhance.Brightness(img)
img_new = enhancer.enhance(%brightness%/100)
img_new.save(r'%output_folder%\%%~nxf')
"
)
echo 完成!
pause
安装依赖
# 安装 Python 库 pip install Pillow opencv-python # 安装 ImageMagick (Ubuntu/Debian) sudo apt-get install imagemagick # 安装 ImageMagick (macOS) brew install imagemagick # 安装 ImageMagick (Windows) # 下载安装包: https://imagemagick.org/script/download.php
高级功能示例
import os
from PIL import Image, ImageEnhance
import argparse
class BrightnessAdjuster:
def __init__(self, input_dir, output_dir):
self.input_dir = input_dir
self.output_dir = output_dir
def process_single(self, filename, factor):
"""处理单张图片"""
img = Image.open(os.path.join(self.input_dir, filename))
enhancer = ImageEnhance.Brightness(img)
adjusted = enhancer.enhance(factor)
# 创建输出目录
os.makedirs(self.output_dir, exist_ok=True)
# 保存
output_path = os.path.join(self.output_dir, filename)
adjusted.save(output_path)
return output_path
def batch_process(self, factor=1.0, pattern="*"):
"""批量处理"""
import glob
files = glob.glob(os.path.join(self.input_dir, pattern))
results = []
for file_path in files:
if file_path.lower().endswith(('.jpg', '.png', '.jpeg', '.bmp')):
filename = os.path.basename(file_path)
result = self.process_single(filename, factor)
results.append(result)
print(f"处理完成: {filename}")
return results
# 命令行使用
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='批量调整图片亮度')
parser.add_argument('input_dir', help='输入文件夹')
parser.add_argument('output_dir', help='输出文件夹')
parser.add_argument('--factor', type=float, default=1.5, help='亮度因子 (默认1.5)')
parser.add_argument('--pattern', default="*", help='文件匹配模式')
args = parser.parse_args()
adjuster = BrightnessAdjuster(args.input_dir, args.output_dir)
adjuster.batch_process(args.factor, args.pattern)
选择建议:
- 简单使用:ImageMagick 命令行
- 需要精细控制:Python + Pillow
- 需要复杂处理:Python + OpenCV
- 可视化操作:Photoshop 批处理