pngPacker与TexturePacker打包对比,手把手教你使用pngPacker打包出媲美texturepacker的效果
pngPacker是一款免费的图片打包工具,软件小巧易用,主流游戏图片格式,如 bmp,jpg,png 可以打包为 png 大图,采用命令行格,前一版本的名称为CppTextu,从V1.1版本开始,统一命名为pngPacker,主要是处理png图片的,后续升级还会增加其它功能,感谢大家的支持与关注。
TexturePacker是一款快速打包图片的工具,功能强大,非常适合打包游戏素材,如果游戏素材比较多,打包时会根据设置图片最大尺寸可能生成多张图片,这个功能是旨在减少每张大图的尺寸。由于TexturePacker是收费的,作者制作了此款免费打包工具pngPacker来实现TexturePacker打包功能。
pngPacker为免费的命令行使用,本例中使用的为V1.1版本,自带pngquant压缩功能。详细命令说明如下:
[verson] ... v1.1.0.1
usage: pngPacker --input_dir=string [options] ...
options:
-i, --input_dir input dir (string)
-n, --ouput_name output atlas name (string [=out])
-o, --ouput_dir output dir (string [=./])
-p, --base_image_path base image path (string [=])
-f, --image_format output image format (string [=png])
-w, --max_width max atlas width (unsigned int [=4096])
-h, --max_height max atlas height (unsigned int [=4096])
-c, --enable_compress enable use pngquant to compress generated images (bool [=1])
-r, --enable_rotate enable rotate (bool [=0])
-s, --force_square force square (bool [=0])
--border_padding border padding (unsigned char [= ])
--shape_padding shape padding (unsigned char [= ])
--inner_padding inner padding (unsigned char [= ])
-b, --reduce_border_artifacts reduce border artifacts (bool [=0])
-t, --trim_mode trim pixel alpha less than input value (unsigned char [= ])
-e, --extrude extrude (unsigned char [= ])
-?, --help print this message
下面通过一组实例来说明一下,
先来一组打包对比图,本例中使用的图片为png图片,游戏中常见的格式,1590个文件,大小为18.1MB。如下图。
下面用pngPacker的命令,来打包此文件夹,命令如下:
pngPacker -i 456 -n test%d -o 789 -f png -w 2048 -h 2048 -t 1 -r 1
由于目前手游的纹理图片最大不能超过2048px,这里取值宽高最大为2048,图片数据太多,需要生成多张大图,故test%d为生成的图片名称,多张的格式;
-t 1:裁切图片像素值小于1的部分,即裁切掉多余的透明部分
-r 1:允许旋转,这样在打包时可以节省空间。
下图为pngPacker与TexturePacker打包出来的对比图。
有需要的小伙伴们可以下载试一下,点击下载最新pngPackerV1.1版本。