UI-VieNeu / scratch /process_green_background.py
HuuDatLego's picture
Upload folder using huggingface_hub
911c66e verified
import os
from PIL import Image
# Cấu hình đường dẫn
input_dir = "static/characters"
output_dir = "static/characters_green"
backup_dir = "static/characters_backup"
# Tạo các thư mục nếu chưa có
os.makedirs(output_dir, exist_ok=True)
os.makedirs(backup_dir, exist_ok=True)
print(f"Starting to process images from {input_dir}...")
green_color = (0, 255, 0) # Mã màu xanh lá chuẩn (RGB)
files = [f for f in os.listdir(input_dir) if f.endswith(".png")]
total = len(files)
for i, filename in enumerate(files):
input_path = os.path.join(input_dir, filename)
output_path = os.path.join(output_dir, filename)
try:
with Image.open(input_path) as img:
# 1. Chuyển sang RGBA nếu chưa có
img = img.convert("RGBA")
# 2. Tạo một nền xanh thuần túy cùng kích thước
background = Image.new("RGB", img.size, green_color)
# 3. Dán ảnh nhân vật lên nền xanh (dùng chính kênh alpha của ảnh làm mask)
background.paste(img, (0, 0), img)
# 4. Lưu lại thành phẩm
background.save(output_path, "PNG")
print(f"[{i+1}/{total}] Processed: {filename}")
except Exception as e:
print(f"[!] Error processing {filename}: {e}")
print(f"\n--- DONE! ---")
print(f"Total: {total} images saved to: {output_dir}")
print(f"Note: Original files are untouched. Please check characters_green folder.")