各位兄弟姐妹,各位前端大神,你们还在为寻找texturepacker破解版而烦恼吗?还在为texturepacker的注册码而忧愁吗?我现在告诉大家一个好消息,各位,使用下面我介绍的方法texturepacker免费版打图将再也不会出现水印,红色的水印。哈哈。。。
有点啰嗦了,因为有点小激动,我也是刚刚实现该功能,请了解。
下面我们就一步一步的来实现如何让免费版当收费版使用:
1、首先我们需要到官网去下载一个正式版本的包,并进行安装:
https://www.codeandweb.com/texturepacker
注意:请大家最好去官网下载正式版的,因为游戏打包基本上都是用命令行打包的,不是吗?因为有些破解版不支持命令行打包。
texturepacker的安装过程我就不啰嗦了
2、下面我就说说我这种方法的原理:
a)texturepacker打包时免费版和专业版产生的plist文件是相同的(即使不相同也没关系,至少免费版有水印,但是有水印的图片的位置和翻转、旋转等信息是正确的)
b)利用texturepacker生成的plist文件,用Python的(PIL)/Pillow库中的Image模块,从新粘贴组装成一张新的图片,替换texturepacker所生成的有红色水印的图片。
3、关于Image模块的安装,可以参考:
https://blog.youkuaiyun.com/zuohang247/article/details/101370134
4、下面就上代码,我在项目中是如何实现对打包后的图片进行逐一替换的:
#! usr/bin/env python
# coding=utf-8
import os
from xml.etree import ElementTree
from PIL import Image
def tree_to_dict(tree):
d = {
}
for index, item in enumerate(tree):
if item.tag == 'key':
if tree[index+1].tag == 'string':
d[item.text] = tree[index + 1].text
elif tree[index + 1].tag == 'true':
d[item.text] = True
elif tree[index + 1].tag == 'false':
d[item.text] = False
elif tree[index + 1].tag == 'dict':
d[item.text] = tree_to_dict(tree[index+1])
return d
def gen_png_from_plist(plist_filename, png_dir):
# 第一步 读取plist的信息 解析
to_list = lambda x: x.replace('{','')