Difficult-Rocket/SRtool/unpack_textures.py
shenjack 9fb2f717ea 正在做c扩展
readme

清理一些无用文件

rename folder

awa

awa

load textures!

删掉了一些没用的东西

hmmm

好耶!

看起来少,实际上多

awa

update

1.0!

rue

ah!

同步libs更新

Update __init__.py

merge!
2022-07-07 21:22:20 +08:00

62 lines
1.8 KiB
Python

# -------------------------------
# Difficult Rocket
# Copyright © 2021 by shenjackyuanjie
# All rights reserved
# -------------------------------
"""
writen by shenjackyuanjie
mail: 3695888@qq.com
github: @shenjackyuanjie
gitee: @shenjackyuanjie
"""
from SRtool.api import tools
import os
import PIL.Image
import json5
def rewrite_config(name, save_name):
load_xml = tools.load_file(name)
load_xml = load_xml.documentElement
sprites = load_xml.getElementsByTagName('sprite')
pic_path = load_xml.getAttribute('imagePath')
poise = {'image_name': pic_path, 'images': {}}
for sprite in sprites:
poi = tools.get_At(['x', 'y', 'w', 'h'], sprite, int)
poi.append(tools.get_At('r', sprite, str))
save_image = tools.get_At('n', sprite, str)
if save_image.find('PNG') != -1:
save_image = save_image[:-3] + 'png'
poise['images'][save_image] = poi
with open(save_name, 'w') as file:
json5.dump(poise, file)
def cut_and_save(config, save_path):
with open(config) as con:
configs = json5.load(con)
pic = PIL.Image.open('textures/' + configs['image_name'])
try:
os.mkdir('textures/' + save_path)
except Exception as exp:
print(exp)
for config_ in configs['images']:
config__ = configs['images'][config_]
save_name = 'textures/%s/%s' % (save_path, config_)
x, y, w, h, t = config__[0], config__[1], config__[2], config__[3], config__[4]
crop_box = [x, y, x + w, y + h]
pic_ = pic.crop(crop_box)
if t == 'y':
pic_ = pic_.rotate(90, expand=True)
print(save_name)
pic_.save(save_name)
def All_in_one_cut(xml, path):
json_name = xml[:-4] + '.json5'
rewrite_config(xml, json_name)
cut_and_save(json_name, path)