背景:参与H5游戏前端开发工作一年多,工作之余也会学习node.js或者python来编写一些方便工作的脚本,工作的效率提高了不少,但是由于是项目中期加入工作室,故对于项目前期的各种知识都是属于欠缺的状态,故最近萌生出自己也写一款游戏的想法,以此来锻炼自己,提高自己的能力。
问题:开始准备阶段,在资源收集时,大多免费资源是一些打包的雪碧图,但是没有对应的plist/json配置文件。
常规办法:用ps抠选出对应的小图片保存。
思考:python有几个图像处理的库,应该有一些接口可以帮助我实现图集分割。
条件:雪碧图具有明显的透明区域界限(至少间隔一个透明像素)
处理方法一:
1、用PIL读取图片
2、numpy提取出透明通道
3、通过二维透明单通道矩阵提取出分割直线,从而得到对应的矩形
在进行矩阵处理的时候,由于本人对矩阵计算完全不熟,因此第3步执行不下去。
方法二:
1、2同上
3、将透明度矩阵二值化
4、通过cv2.findContours函数找到各个子图的轮廓
5、提取每个轮廓的最小外接矩形
6、切割保存
img = Image.open(fileName) #fileName 图片名字
img = img.convert('RGBA')
np_data = np.array(img) #转化成矩阵
np_a = np_data[:,:,3] #提取出单透名通道
ret, binary = cv2.threshold(np_a,1,255,cv2.T