Clean asset organization - subfolders + preview versions

This commit is contained in:
2025-12-30 23:58:40 +01:00
parent 190d45edfa
commit 884d7811f2
567 changed files with 316 additions and 13 deletions

View File

@@ -45,10 +45,10 @@ def get_target_size(category: str, filename: str):
def reorganize_asset(asset_path: Path, category_dir: Path, target_size):
"""
Reorganize single asset:
- Create subfolder with asset name
- Save original as assetname_1024x1024.png
- Save resized as assetname_32x32.png
Reorganize single asset - creates 3 versions:
- Original: 1024x1024 (full quality archive)
- Preview: 256x256 (visible in file explorer)
- Sprite: 32x32 (game-ready tile)
"""
try:
@@ -71,20 +71,28 @@ def reorganize_asset(asset_path: Path, category_dir: Path, target_size):
print(f" 📁 {asset_name}/")
print(f" ✅ Original: {original_filename} ({orig_width}×{orig_height})")
# Create resized version if needed
# Create PREVIEW version (256x256 - visible in file explorer!)
preview_size = 256
preview = img.resize((preview_size, preview_size), Image.Resampling.LANCZOS)
preview_filename = f"{asset_name}_preview_{preview_size}x{preview_size}.png"
preview_path = asset_folder / preview_filename
preview.save(preview_path, 'PNG', optimize=True)
print(f" ✅ Preview: {preview_filename} (VISIBLE SIZE)")
# Create SPRITE version (32x32 - for game)
if target_size is not None:
if isinstance(target_size, tuple):
resized = img.resize(target_size, Image.Resampling.LANCZOS)
sprite = img.resize(target_size, Image.Resampling.LANCZOS)
new_width, new_height = target_size
else:
resized = img.resize((target_size, target_size), Image.Resampling.LANCZOS)
sprite = img.resize((target_size, target_size), Image.Resampling.LANCZOS)
new_width, new_height = target_size, target_size
resized_filename = f"{asset_name}_{new_width}x{new_height}.png"
resized_path = asset_folder / resized_filename
resized.save(resized_path, 'PNG', optimize=True)
sprite_filename = f"{asset_name}_sprite_{new_width}x{new_height}.png"
sprite_path = asset_folder / sprite_filename
sprite.save(sprite_path, 'PNG', optimize=True)
print(f"Resized: {resized_filename} ({new_width}×{new_height})")
print(f"Sprite: {sprite_filename} (GAME SIZE)")
return True
@@ -139,8 +147,9 @@ def main():
print(f"✅ COMPLETE! Reorganized {total} assets")
print("=" * 70)
print("\n📁 Structure: category/assetname/")
print(" - assetname_1024x1024.png (original)")
print(" - assetname_32x32.png (resized)")
print(" - assetname_1024x1024.png (ORIGINAL - full quality)")
print(" - assetname_preview_256x256.png (PREVIEW - visible size)")
print(" - assetname_sprite_32x32.png (SPRITE - game ready)")
if __name__ == "__main__":
main()