实际操作非常没有技术含量,不过想展示一下万能的python。虽然python的文字编码和空格对齐我很反感,但是不得不说,其接口设计非常优秀,让复杂的工作变得非常简单,这种思想也体现在第三方扩展上面。
刀塔传奇使用jpg+mask文件的形式,达到压缩资源的目的。jpg的压缩比非常优秀,而mask含有透明通道信息,这样就可以大大压缩图片大小。
不过我个人更倾向于png,使用png8+压缩纹理不会比这个方案更差,换来的是更加快的加载速度和内存的节约。尤其是在Unity中,我更希望Unity来管理纹理,而不是我自己去操心。
#coding:utf-8
import os;
from PIL import Image;
# 将刀塔传奇中的mask+jpg文件转换成png文件
def doConvertJpg(jpgPath, maskPath):
pngPath = jpgPath.replace('.jpg', '.png');
maskData = open(maskPath, 'rb').read();
jpgData = open(jpgPath, 'rb').read();
jpg = Image.open(jpgPath);
width = jpg.size[0];
height = jpg.size[1];
png = jpg.convert('RGBA')
mask = Image.open(maskPath);
png.putalpha(mask);
png.save(pngPath);
os.remove(jpgPath);
os.remove(