Files
novafarma/scripts/remove_background.py
David Kotnik 305c915fc7 🇸🇮 Kompletna reorganizacija v slovensko strukturo
 NAREJENO:
- Scan 1,112 PNG datotek
- Najdenih 109 duplikatov (preskočenih)
- Premaknjenih 635 aktivnih assetov v slovensko strukturo
- Izbrisanih 14 starih angleških map
- Updatanih 11 scriptov za nove poti

📁 NOVA STRUKTURA:
assets/slike/
├── liki/ (karakterji: Kai, Gronk, Ana, NPCs)
├── sovrazniki/ (zombiji, mutanti, bossi)
├── biomi/ (18 zon)
├── zgradbe/ (vse stavbe in props)
├── predmeti/ (orodja, semena, hrana)
├── orozje/ (hladno, strelno)
├── rastline/ (posevki, drevesa)
├── ui/ (interface elementi)
├── efekti/ (voda, dim)
└── cutscene/ (flashbacki)

💡 ADHD-FRIENDLY:
- Slovensko poimenovanje
- Max 2 nivoja podmap
- Logična kategorizacija
- Enostavno iskanje
2025-12-31 01:54:16 +01:00

87 lines
2.3 KiB
Python

#!/usr/bin/env python3
"""
Background Removal for DolinaSmrti Assets
Uses rembg to remove white backgrounds and create transparent PNGs
"""
import os
import sys
from pathlib import Path
from PIL import Image
try:
from rembg import remove
except ImportError:
print("❌ rembg not installed. Installing now...")
os.system("pip3 install rembg")
from rembg import remove
def remove_background(input_path: Path, output_path: Path = None):
"""Remove background from image and save as transparent PNG"""
if output_path is None:
output_path = input_path
print(f" 🎨 Processing: {input_path.name}")
# Load image
with open(input_path, 'rb') as input_file:
input_data = input_file.read()
# Remove background
output_data = remove(input_data)
# Save as PNG
with open(output_path, 'wb') as output_file:
output_file.write(output_data)
print(f" ✅ Saved: {output_path.name}")
def process_directory(directory: Path, recursive: bool = False):
"""Process all PNG files in directory"""
print(f"\n{'='*60}")
print(f"📁 Processing directory: {directory}")
print(f"{'='*60}")
pattern = "**/*.png" if recursive else "*.png"
png_files = list(directory.glob(pattern))
total = len(png_files)
print(f"\nFound {total} PNG files")
for i, png_file in enumerate(png_files, 1):
print(f"\n[{i}/{total}]")
remove_background(png_file)
print(f"\n{'='*60}")
print(f"✅ Completed! Processed {total} images")
print(f"{'='*60}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python3 remove_background.py <image_or_directory>")
print("\nExamples:")
print(" python3 remove_background.py image.png")
print(" python3 remove_background.py assets/slike/zgradbe/")
print(" python3 remove_background.py assets/images/ --recursive")
sys.exit(1)
path = Path(sys.argv[1])
recursive = "--recursive" in sys.argv or "-r" in sys.argv
if not path.exists():
print(f"❌ Path not found: {path}")
sys.exit(1)
if path.is_file():
remove_background(path)
elif path.is_dir():
process_directory(path, recursive=recursive)
else:
print(f"❌ Invalid path: {path}")
sys.exit(1)