资源简介
读取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控制柜方案
- 下一篇:国网单相智能电表设计
相关资源
- kaggle入门-Titanic
- 豆瓣电影爬虫、豆瓣电影推荐系统
- 数据挖掘与机器学习.pdf
- 逻辑回归分类鸢尾花和红酒等级,源
- 线性回归数值型预测:预测鲍鱼的年
- 波士顿房价预测数据及代码
- 全国计算机等级考试二级公共基础知
- 鱼c资源全套视频+课件+作业答案
- 新冠病毒数据集包含地理位置、全国
- 神经网络二分类
- requests安装所需包和依赖_whl.rar
- python tsp 求解VRP问题的经典算法
- Pillow安装包
- 精通Django
- 人脸识别正样本图片库
- vocab.txt词典
- 米字格.pdf
- 飞机大战素材
- caffe学习笔记1-7-完整版-薛开宇
- 2017高职大数据赛真题及参考答案
- Odoo10.0中文开发手册2017
- Django Web开发指南源码
- PC端完整版商城模板在线商城静态页面
- pyecharts中文教程
- pynq-z2_boardfiles.zip
- numpy中文文档
- 爬取喜马拉雅音频.zip
- 计算机专业本科毕设选题探讨
- 辛星tkinter教程第二版-最新完整版
- 2014年辛星Django教程第一版
评论
共有 条评论