本文目录导读:

Adobe Photoshop 的动作 + 批处理
这是最主流、功能最强大的方案,适合需要精细控制色阶调整策略的用户。
步骤:
-
录制动作(Action):
- 打开一张代表性图片。
- 打开“动作”面板(窗口 > 动作)。
- 点击“创建新动作”按钮,命名(如“批量色阶”),点击“记录”。
- 执行:
图像 > 调整 > 色阶(快捷键Ctrl+L)。 - 调整色阶滑块(输入色阶的阴影、中间调、高光),或者点击“自动”按钮(可配合
选项中的算法,如“增强每通道的对比度”)。 - 点击“确定”。
- 点击“动作”面板下方的“停止播放/记录”按钮。
-
批处理:
- 菜单:
文件 > 自动 > 批处理。 - 播放: 选择刚才录制的动作。
- 源: 选择要处理的图片文件夹。
- 目标: 选择处理后的图片保存文件夹,建议勾选“覆盖动作中的‘存储为’命令”。
- 文件命名: 设置批处理后的文件命名规则。
- 错误: 建议选择“记录错误到文件”,便于排查问题。
- 菜单:
高效免费方案:FastStone Image Viewer
这款软件体积小、免费、速度快,内置了强大的批处理工具,非常适合快速调整图片的色阶、亮度、对比度等。
步骤:
- 打开 FastStone Image Viewer。
- 进入批处理模式:点击菜单栏
工具 > 批量转换或直接按快捷键Ctrl+F。 - 添加文件: 在左侧导航中找到并选择要处理的图片,添加到右侧列表。
- 输出设置: 设置输出格式(建议保持原始格式或设为JPG)和输出文件夹。
- 核心步骤 - 添加调整:
- 点击窗口底部的 “选项” 按钮(或高级选项中的齿轮图标)。
- 在弹出的窗口中,找到并勾选 “色阶” 或 “亮度/对比度/伽马” 等调整选项。
- 点击该选项旁边的 “设置” 按钮,弹出对话框。
- 直方图调整: 您可以直接拖动阴影(黑点)、中间调(灰点)、高光(白点)滑块,您也可以调整红、绿、蓝三个通道的色阶。
- 模式选择: 如果每张图片的明暗分布差异很大,建议选择 “自定义” 模式并手动设定一个合理的范围,或者在软件支持下尝试 “自动” 模式。
- 预览: 勾选“预览”查看当前图片效果,调整满意后点击“确定”。
- 点击“开始”执行批处理。
极客/开发者方案:Python + Pillow (PIL) 脚本
如果您需要处理大量图片,并且希望实现完全可重复、参数可微调的效果,使用 Python 脚本是最佳选择。
核心代码示例(调整所有图片的色阶):
from PIL import Image, ImageOps
import os
def batch_adjust_levels(input_dir, output_dir, black_point=0, white_point=255, mid_point=128):
"""
批量调整图片色阶。
Args:
input_dir: 输入图片文件夹路径
output_dir: 输出图片文件夹路径
black_point: 输入色阶的黑场值 (0-255)
white_point: 输入色阶的白场值 (0-255)
mid_point: 输入色阶的中间调伽马值,经验:128为中性,>128变暗,<128变亮。
注意:实际上PIL的色阶调整是通过缩放实现的,这里简化了实现。
更精确的色阶调整需要用到Point或色阶查找表(LUT)。
"""
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename in os.listdir(input_dir):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp')):
img_path = os.path.join(input_dir, filename)
img = Image.open(img_path)
# 方法1:使用自动对比度(类似PS的自动色阶)
# img_adjusted = ImageOps.autocontrast(img, cutoff=0.5)
# 方法2:手动调整色阶(基于PIL的ImageOps.scale或自定义)
# 这里用一个简化的实现:将[black_point, white_point]映射到[0, 255]
# 注意:这忽略了对中间调的伽马调整,但足以批量处理
def map_levels(x):
if x <= black_point:
return 0
elif x >= white_point:
return 255
else:
return int((x - black_point) * 255 / (white_point - black_point))
# 创建映射表
lut = [map_levels(i) for i in range(256)]
# 将色阶表应用到所有通道
img_adjusted = img.point(lut * len(img.getbands()))
# 保存
save_path = os.path.join(output_dir, f"adjusted_{filename}")
img_adjusted.save(save_path)
print(f"已处理: {filename}")
# 使用示例 - 将输入图片的黑场设为30,白场设为220
batch_adjust_levels("./input_images/", "./output_images/", black_point=30, white_point=220)
安装依赖: pip install Pillow
高级脚本提示:
对于更精确的色阶调整(包括中间调伽马和分通道调整),建议使用 OpenCV(cv2)或 Skimage 库,它们提供更直接的色阶调整函数。
总结与选择建议
| 场景/需求 | 推荐工具 |
|---|---|
| 图片数量少、画质要求高 | Adobe Photoshop 动作批处理 |
| Windows系统、需要快速批量处理不同来源的图片 | FastStone Image Viewer (D大推荐) |
| macOS系统、想要类似Photoshop的功能 | Pixelmator Pro 批处理或 Affinity Photo 宏 + 批处理 |
| 需要精确控制甚至定制算法、处理海量图片 | Python + Pillow/OpenCV |
| 仅需统一调亮/调暗大堆图片 | IrfanView 或 XnConvert 的批处理 |
最后建议: 无论使用哪种工具,执行全自动批量处理时,建议先对一个子集(如10-20张)进行测试,确保“自动色阶”或手动设置的参数效果能够代表您的整体需求,避免因单张图片异常导致整个批次效果不佳。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。