#!/usr/bin/env python3 """ Agresivno čiščenje ozadij za vse slike v 'nova mapa ' Odstrani: zeleno, belo, checkerboard, sivo """ from PIL import Image import numpy as np import os def ultra_clean_background(input_path, output_path): """ Ultra agresivno čiščenje vseh ozadij """ print(f"Ultra cleaning: {input_path}") img = Image.open(input_path) img = img.convert("RGBA") data = np.array(img, dtype=np.float32) r, g, b, a = data[:,:,0], data[:,:,1], data[:,:,2], data[:,:,3] # MASKA 1: Zeleno ozadje (všečen range) green_light = (g > 200) & (g > r + 20) & (g > b + 20) green_medium = (g > 150) & (g > r + 40) & (g > b + 40) green_dark = (g > 100) & (g > r + 50) & (g > b + 50) green_mask = green_light | green_medium | green_dark # MASKA 2: Belo ozadje (všečen range) white_bright = (r > 250) & (g > 250) & (b > 250) white_light = (r > 235) & (g > 235) & (b > 235) white_mask = white_bright | white_light # MASKA 3: Checkerboard - ULTRA AGGRESSIVE # Svetlo sivo (range 180-210) light_gray = (r > 170) & (r < 220) & (g > 170) & (g < 220) & (b > 170) & (b < 220) is_gray_light = (np.abs(r - g) < 10) & (np.abs(g - b) < 10) & (np.abs(r - b) < 10) light_gray_mask = light_gray & is_gray_light # Temno sivo (range 130-170) dark_gray = (r > 120) & (r < 180) & (g > 120) & (g < 180) & (b > 120) & (b < 180) is_gray_dark = (np.abs(r - g) < 10) & (np.abs(g - b) < 10) & (np.abs(r - b) < 10) dark_gray_mask = dark_gray & is_gray_dark # Kombinirana maska remove_mask = green_mask | white_mask | light_gray_mask | dark_gray_mask # Nastavi alpha na 0 data[remove_mask, 3] = 0 # Pretvori nazaj result_data = data.astype(np.uint8) result = Image.fromarray(result_data) # Shrani result.save(output_path, "PNG") print(f" ✓ Ultra cleaned: {output_path}") # Čisti VSE PNG slike v vseh 3 mapah base_path = "assets/slike/nova mapa " folders = ["Characters", "Environment", "UI"] total_cleaned = 0 for folder in folders: folder_path = os.path.join(base_path, folder) print(f"\n{'='*60}") print(f"CLEANING FOLDER: {folder}") print(f"{'='*60}") for root, dirs, files in os.walk(folder_path): for file in files: if file.endswith(".png") and not file.startswith("."): filepath = os.path.join(root, file) ultra_clean_background(filepath, filepath) total_cleaned += 1 print(f"\n{'='*60}") print(f"✅ TOTAL: {total_cleaned} PNG slik ULTRA SČIŠČENIH!") print(f"{'='*60}")