将刀塔传奇中的jpg+mask文件转换为带透明通道的png文件

实际操作非常没有技术含量,不过想展示一下万能的python。虽然python的文字编码和空格对齐我很反感,,但是不得不说,其接口设计非常优秀,让复杂的工作变得非常简单,这种思想也体现在第三方扩展上面。

刀塔传奇使用jpg+mask文件的形式,达到压缩资源的目的。jpg的压缩比非常优秀,而mask含有透明通道信息,这样就可以大大压缩图片大小。

不过我个人更倾向于png,使用png8+压缩纹理不会比这个方案更差,换来的是更加快的加载速度和内存的节约。尤其是在Unity中,我更希望Unity来管理纹理,而不是我自己去操心。

#coding:utf-8import 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(maskPath);def doConvertPath(path):for root, dirs, files in os.walk(path):for file in files:if file.find('.jpg') != -1:fullPath = os.path.join(root, file);maskPath = fullPath.replace('.jpg', '_alpha_mask');if os.path.exists(maskPath):doConvertJpg(fullPath, maskPath);doConvertPath('ui');os.system('PAUSE')最神奇的是Image.putalpha函数,它已经把所有需要做的工作都做完了。

青春不是年华,而是心境;青春不是桃面丹唇柔膝,

将刀塔传奇中的jpg+mask文件转换为带透明通道的png文件

相关文章:

你感兴趣的文章:

标签云: