mirror of
https://github.com/Klagarge/PokeHES.git
synced 2025-12-18 14:13:06 +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