资源简介
读取json文件切割图集,支持按目录批量裁剪,保留命名
代码片段和文件信息
# -*- coding: utf-8 -*-
import ossys
import json
import os
import os.path
from PIL import Image
def json_to_dict(json_filename):
json_file = open(json_filename ‘r‘)
all_pic_dic = json.load(json_file)
all_item_list = []
for one_pic_item in all_pic_dic[‘res‘]:
one_json_item = all_pic_dic[‘res‘][one_pic_item]
one_item = {}
one_item[‘name‘] = one_pic_item.strip().lstrip().rstrip(‘‘)
one_item[‘x‘] = one_json_item[‘x‘]
one_item[‘y‘] = one_json_item[‘y‘]
one_item[‘w‘] = one_json_item[‘w‘]
one_item[‘h‘] = one_json_item[‘h‘]
all_item_list.append(one_item)
return all_item_list
def gen_png_from_json(folder_name json_filename png_filename):
big_image = Image.open(png_filename)
all_item_list = json_to_dict(json_filename)
print ‘gen_png_from_json:‘ + folder_name
#清理掉原目录
if not os.path.isdir(folder_name):
#os.removedirs(folder_name)
os.mkdir(folder_name)
for i one_item_data in enumerate(all_item_list):
file_name = one_item_data[‘name‘]
x = one_item_data[‘x‘]
y = one_item_data[‘y‘]
w = one_item_data[‘w‘]
h = one_item_data[‘h‘]
#设置图像裁剪区域 (x左上,y左上,x右下y右下)
image_box = [x y x + w y + h ]
one_pic = big_image.crop(image_box)
one_pic.save(folder_name + “/“ + file_name + ‘.png‘) # 存储裁剪得到的图像
#print one_item_data
if __name__ == ‘__main__‘:
rootdir = sys.argv[1]
#‘E:/_github/Python/TexturePacker‘
file_name_set = set()
if os.path.exists(rootdir):
list_file = os.listdir(rootdir)
for i in range(0len(list_file)):
one_file_name = list_file[i]
path = os.path.join(rootdir one_file_name)
if os.path.isfile(path):
file_name_set.add(os.path.splitext(one_file_name)[0])
for file_name in file_name_set:
json_filename = os.path.join(rootdir file_name) + ‘.json‘
png_filename = os.path.join(rootdir file_name) + ‘.png‘
jpg_filename = os.path.join(rootdir file_name) + ‘.jpg‘
if os.path.exists(json_filename):
if os.path.exists(png_filename):
try:
gen_png_from_json(os.path.join(rootdir file_name) json_filename png_filename )
except Exception:
print ‘!!!!!!!!!!!!!!!!!!!!‘ + json_filename + ‘ json error !!!!!!!!!!!!!!!!!!!!!‘
elif os.path.exists(jpg_filename):
try:
gen_png_from_json(os.path.join(rootdir file_name) json_filename jpg_filename )
except Exception:
print ‘!!!!!!!!!!!!!!!!!!!!‘ + json_filename + ‘ json error !!!!!!!!!!!!!!!!!!!!!‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 39 2018-09-20 21:17 UnpackSpriteSheetByJson\_run.bat
文件 2955 2018-09-20 21:17 UnpackSpriteSheetByJson\_unpack_json.py
目录 0 2018-09-20 22:33 UnpackSpriteSheetByJson\python\
文件 837844 2018-09-20 21:17 UnpackSpriteSheetByJson\python\PIL-1.1.7.win32-py2.7.exe
文件 2292 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8.json
文件 38807 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8.png
目录 0 2018-09-20 22:33 UnpackSpriteSheetByJson\stand_8\
文件 6741 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8\stand80001.png
文件 6840 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8\stand80002.png
文件 6911 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8\stand80003.png
文件 6882 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8\stand80004.png
文件 6885 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8\stand80005.png
文件 6839 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8\stand80006.png
文件 6735 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8\stand80007.png
文件 6680 2018-09-20 21:17 UnpackSpriteSheetByJson\stand_8\stand80008.png
- 上一篇:PLC控制柜方案
- 下一篇:国网单相智能电表设计
相关资源
- pip-10.0.1.tar.gz
- Data Science from Scratch 2nd Edition
- shape_predictor_68_face_landmarks.dat.bz2 68个标
- 爬取豆瓣电影TOP250程序,包含非常详
- 中文维基百科语料库百度网盘网址.
- MSCNN_dehaze.rar
- 爬取豆瓣排行榜电影数据(含GUI界面
- 字典文本资源
- Brainfuck / OoK 解码脚本
- 案例实战信用卡欺诈检测数据集
- 招商策略_抱团启示录那些年我们一起
- sip-4.19.zip
- 树莓派3b+学习使用教程
- numpy 中文学习手册
- pytorch-1.4.0-py3.7_cpu_0.tar.bz2
- 机器学习实战 高清完整版PDF
- 泰坦尼克号0.81准确率实验报告.docx
-
abaqus sc
ripting reference manual.pdf - 网页版聊天程序--网络程序设计课程大
- Give Me Some Credit
-
ba
semap安装出错时,正确得pyproj文件 - 微信头像拼接工具
- 统计思维:程序员数学之概率统计第
- 基于open cv的人脸识别
- Django web 开发中文 完整版本
- 影视领域可视化数据挖掘综述
- pyexiv2安装包
- dlib-19.4.0-cp35.whl Windows64位 不用boos
- PySpark Recipes-A Problem-Solution Approach wi
- 拆分CSV文件.zip
评论
共有 条评论