mirror of
				https://github.com/Klagarge/PokeHES.git
				synced 2025-10-31 03:39:16 +00:00 
			
		
		
		
	add ressources
This commit is contained in:
		
							
								
								
									
										51
									
								
								resources/map/texture_splitter.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								resources/map/texture_splitter.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| #!/usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| import os | ||||
| from PIL import Image | ||||
| import numpy as np | ||||
|  | ||||
| W, H = 32, 32 | ||||
|  | ||||
| def split(path): | ||||
|     if not os.path.exists(path): | ||||
|         print(f"File '{path}' not found") | ||||
|         return | ||||
|      | ||||
|     dir_ = os.path.dirname(path) | ||||
|     base = os.path.basename(path) | ||||
|     base, ext = os.path.splitext(base) | ||||
|      | ||||
|     try: | ||||
|         img = Image.open(path) | ||||
|      | ||||
|     except: | ||||
|         print(f"Could not load '{path}'. Maybe its not an image") | ||||
|         return | ||||
|      | ||||
|     a = np.array(img) | ||||
|     w, h = a.shape[1]//W, a.shape[0]//H | ||||
|     n = 0 | ||||
|      | ||||
|     for y in range(h): | ||||
|         for x in range(w): | ||||
|             try: | ||||
|                 i = Image.fromarray(a[y*H:y*H+H, x*W:x*W+W]) | ||||
|                 i.save(os.path.join(dir_, f"{base}_{x+y*w}{ext}")) | ||||
|              | ||||
|             except: | ||||
|                 print(f"Could not create texture {x+y*w}") | ||||
|              | ||||
|             else: | ||||
|                 n += 1 | ||||
|      | ||||
|     img.close() | ||||
|      | ||||
|     print(f"Succesfully created {n} textures") | ||||
|      | ||||
|     if a.shape[1] % 32 or a.shape[0] % 32: | ||||
|         print(f"The texture's shape was not a multiple of 32x32 ({a.shape[1]}x{a.shape[0]}). Only fully visible tiles have been extracted.") | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     path = input("Path to tileset texture: ") | ||||
|      | ||||
|     split(path) | ||||
		Reference in New Issue
	
	Block a user