import os
import random
from PIL import Image, ImageEnhance, ImageOps, ImageChops, ImageFilter
def random_color_overlay(img):
color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
overlay = Image.new('RGBA', img.size, color)
img = Image.alpha_composite(img, overlay)
return img
def blend_modes(img1, img2):
blend_mode = random.choice([
ImageChops.add,
ImageChops.darker,
ImageChops.lighter,
ImageChops.multiply,
ImageChops.screen
])
return blend_mode(img1, img2)
def process_images(input_folder, output_folder):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for file in os.listdir(input_folder):
if file.endswith('.png'):
img_path = os.path.join(input_folder, file)
img = Image.open(img_path).convert('RGBA')
# Create planes
img_planes = ImageOps.colorize(img, '#000000', '#ffffff')
# Apply random color overlay
img_overlay = random_color_overlay(img_planes)
# Blend original image with the overlay using a random blend mode
img_result = blend_modes(img, img_overlay)
output_path = os.path.join(output_folder, f'processed_{file}')
img_result.save(output_path)
if __name__ == '__main__':
input_folder = 'input_images'
output_folder = 'output_images'
process_images(input_folder, output_folder)