# -*- coding:utf-8 -*- # @Author len # @Create 2023/11/5 16:01 import os import random from PIL import Image # 从图片中提取的颜色代码 color_codes = [ "#FFFFCC", "#CFFFFF", "#FFCCCC", "#99CCCC", "#FFCC99", "#FFCCCC", "#F99999", "#996699", "#FFCCCC", "#CC9999", "#FFFFCC", "#CCCC99", "#FFCCCC", "#FFFF99", "#CCCCFF", "#0899CC", "#CCCCCC", "#FF6666" ] def add_image_to_random_solid_background(image_path, output_path, background_size): # 随机选择一个背景颜色 background_color = random.choice(color_codes) background_color = tuple(int(background_color[i:i+2], 16) for i in (1, 3, 5)) # 转换为RGB try: # 打开原始图片 with Image.open(image_path) as image: # 创建一个新的随机颜色背景图片 background = Image.new('RGB', background_size, background_color) # 计算原始图片在新背景中的位置 x = (background_size[0] - image.size[0]) // 2 y = (background_size[1] - image.size[1]) // 2 # 将原始图片粘贴到背景图片上 background.paste(image, (x, y), image if image.mode == 'RGBA' else None) # 保存最终图片 background.save(output_path) print(f"Processed and saved to {output_path}") except Exception as e: print(f"Error processing {image_path}: {e}") def batch_process_images_with_random_background(source_folder, output_folder, background_size): # 确保输出文件夹存在 if not os.path.exists(output_folder): os.makedirs(output_folder) # 遍历源文件夹中的所有图片文件 for image_filename in os.listdir(source_folder): if image_filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')): image_path = os.path.join(source_folder, image_filename) output_path = os.path.join(output_folder, image_filename) # 为每个图片文件添加随机颜色背景 add_image_to_random_solid_background(image_path, output_path, background_size) # 源文件夹路径,存放原始图片 source_folder = r'D:\Waste\嵌入式\2023年嵌入式系统应用开发赛项—第三模块图像参考示例\2023年嵌入式系统应用开发赛项—第三模块图像参考示例\04-车牌参考图\车牌' # 输出文件夹路径,存放处理后的图片 output_folder = r'D:\Waste\嵌入式\2023年嵌入式系统应用开发赛项—第三模块图像参考示例\2023年嵌入式系统应用开发赛项—第三模块图像参考示例\04-车牌参考图\001' # 背景尺寸 background_size = (800, 480) # 执行批处理函数 batch_process_images_with_random_background(source_folder, output_folder, background_size)