在游戏开发过程中,通常需要解决以下问题:
- 原生平台减小包体、减小热更新时的资源大小;
- Web 平台加载远程资源,需要压缩资源的大小;
图片作为最主要的资源之一,我们需要一个压缩图片的解决方案。
为了总结这个解决方案,我们的基本思路是研究主流的几个压缩软件,对比它们压缩不同图片资源的效果。
1. 常见的压缩方案
-
pngquant 压缩软件
pngquant-官方网站
pngquant-github 仓库 -
imagemin npm 包
https://github.com/imagemin/imagemin#readme
资源压缩插件 -
TinyPNG
原来 TinyPNG 可以这样玩!
2. 方案选择
我们首先准备好一个小游戏项目的资源:
其大小是 1.4MB
super-tinypng 压缩
# 局部安装 super-tinypng
npm install super-tinypng
# 切换到资源目录
cd AutoAtlas
# 压缩资源
../node_modules/.bin/super-tinypng
压缩完毕,大小为 589KB
pngquant 方案
切换到 AutoAtlas 文件夹下执行压缩方案
find . -type f | grep .png | xargs ../3rd/mac/pngquant/pngquant --force --ext .png
压缩后,资源大小为
从两个方案的压缩效率来看, tinypng 优于 pngquant。