Clean asset organization - subfolders + preview versions
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user