将多张图批量按某种色调调色,使其作为背景图
from PIL import Image, ImageEnhance # 确保导入 ImageEnhance 模块
import os
def adjust_image_tone(image_path, output_path, r_weight=1.0, g_weight=1.0, b_weight=1.0, brightness=1.0):
"""
调整图片的色调、明暗,并进行去图处理。
参数:
image_path (str): 输入图片的路径。
output_path (str): 输出图片的路径。
r_weight (float): 红色通道的权重。
g_weight (float): 绿色通道的权重。
b_weight (float): 蓝色通道的权重。
brightness (float): 亮度调整值(1.0 表示原始亮度,小于 1.0 变暗,大于 1.0 变亮)。
"""
# 打开图片并转换为灰度图像(去图处理)
img = Image.open(image_path).convert('L').convert('RGB')
# 分离RGB通道
r, g, b = img.split()
# 调整每个通道的权重
new_r = r.point(lambda i: i * r_weight)
new_g = g.point(lambda i: i * g_weight)
new_b = b.point(lambda i: i * b_weight)
# 合并调整后的通道
adjusted_img = Image.merge('RGB', (new_r, new_g, new_b))
# 调整亮度
adjusted_img = ImageEnhance.Brightness(adjusted_img).enhance(brightness)
# 保存调整后的图片
adjusted_img.save(output_path)
print(f"已处理图片: {output_path}")
def batch_process_images(input_folder, output_folder, r_weight=1.0, g_weight=1.0, b_weight=1.0, brightness=1.0):
"""
批量处理文件夹中的图片,调整色调、明暗,并进行去图处理。
参数:
input_folder (str): 输入图片文件夹路径。
output_folder (str): 输出图片文件夹路径。
r_weight (float): 红色通道的权重。
g_weight (float): 绿色通道的权重。
b_weight (float): 蓝色通道的权重。
brightness (float): 亮度调整值。
"""
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 遍历输入文件夹中的所有图片
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, filename)
# 调整图片色调和明暗
adjust_image_tone(input_path, output_path, r_weight, g_weight, b_weight, brightness)
# 示例用法
if __name__ == "__main__":
input_folder = "input_images" # 输入文件夹
output_folder = "output_images" # 输出文件夹
# 自定义RGB权重和亮度
r_weight = 1.0 # 红色通道权重
g_weight = 0.5 # 绿色通道权重
b_weight = 0.5 # 蓝色通道权重
brightness = 0.3 # 亮度调整值(1.0 表示原始亮度)
batch_process_images(input_folder, output_folder, r_weight, g_weight, b_weight, brightness)