ok
This commit is contained in:
75
scripts/universal_resizer.py
Normal file
75
scripts/universal_resizer.py
Normal file
@@ -0,0 +1,75 @@
|
||||
|
||||
import os
|
||||
from PIL import Image
|
||||
|
||||
ROOT = "assets/slike"
|
||||
|
||||
RULES = {
|
||||
"teren": 512,
|
||||
"liki": 256,
|
||||
"animations": 128,
|
||||
"zombiji": 128,
|
||||
"predmeti": 64
|
||||
}
|
||||
DEFAULT_SIZE = 512 # For References and others
|
||||
|
||||
def universal_resize():
|
||||
print("🚀 STARTING UNIVERSAL RECURSIVE RESIZER (DEMO, PHASES, REFS)...")
|
||||
|
||||
total_resized = 0
|
||||
|
||||
for root, dirs, files in os.walk(ROOT):
|
||||
# Determine strict size based on path context
|
||||
# Check against rules
|
||||
target_size = DEFAULT_SIZE # Default for refs/others
|
||||
|
||||
path_lower = root.lower()
|
||||
|
||||
# Priority order?
|
||||
# what if path has both liki and animation? (unlikely)
|
||||
|
||||
# Match rules
|
||||
matched = False
|
||||
for key, size in RULES.items():
|
||||
if key in path_lower:
|
||||
target_size = size
|
||||
matched = True
|
||||
break
|
||||
|
||||
# If no match, check if it's references (stay 512 default) or DEMO root (might be mixed)
|
||||
# If it's pure DEMO root (not in subfolder), default apply.
|
||||
|
||||
for file in files:
|
||||
if file.lower().endswith(('.png', '.jpg', '.jpeg')):
|
||||
filepath = os.path.join(root, file)
|
||||
|
||||
try:
|
||||
with Image.open(filepath) as img:
|
||||
current_w, current_h = img.size
|
||||
|
||||
# Only Resize if needed
|
||||
# Scale proportionally to fit Square box? Or force Square?
|
||||
# User Tables implied Force Square (512x512).
|
||||
# Assuming Force Resize to Tuple (size, size)
|
||||
|
||||
wanted_size = (target_size, target_size)
|
||||
|
||||
if img.size != wanted_size:
|
||||
# print(f"🔧 Resizing {file} ({current_w}x{current_h}) -> {wanted_size} (Context: {matched})")
|
||||
img_resized = img.resize(wanted_size, Image.Resampling.LANCZOS)
|
||||
img_resized.save(filepath)
|
||||
total_resized += 1
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Error {file}: {e}")
|
||||
|
||||
# Verify progress
|
||||
# print(f"Scanned {root}")
|
||||
|
||||
print("="*40)
|
||||
print(f"✅ UNIVERSAL RESIZE COMPLETE.")
|
||||
print(f"Total Images Adjusted: {total_resized}")
|
||||
print("="*40)
|
||||
|
||||
if __name__ == "__main__":
|
||||
universal_resize()
|
||||
Reference in New Issue
Block a user