[图像]TexturePacker打包命令脚本
TexturePacker官网
TexturePacker是一款把若干资源图片拼接为一张大图的合图工具,在游戏开发以及网页制作中经常会使用到这个工具。为什么需要使用这个工具呢?
我们这里需要了解一个概念:图片格式(Image format)。图片格式有RGBA8888、RGBA4444、RGBA5555、RGB888等等。假如我们使用的图片格式为RGBA8888,也就是说图片每个像素点都由R、G、B、A4个值组成,每个值占用8位(值为0-255),那么一个像素点会占用8位*4=32位=4字节。所以图片大小为64*65时我们按照64*128载入,此时会造成64*(128-65)*4字节=16128字节=15.75KB的内存空间浪费,要知道整张图片的大小才有64*65*4/1024=16.25KB。
所以,在游戏开发使用图片资源时,我们要尽量保证图片的大小在接近且不大于2的整数倍,理想状态下,如果每一张图的长宽都恰好是2的n次方数值,就不会有任何浪费了。TexturePacker正是帮助我们将图片资源进行这样优化的一款软件。
2.TexturePacker不仅能帮助我们在加载图片时节省内存,它将很多小图拼接成一张大图后,合成的大图会比之前所有的散图所占用的物理存储更小,也许一堆散图的大小为20KB,将它们合成一张大图后可能就变成了10KB,这样便从而通过减小图片资源物理存储大小起到压缩游戏安装包的作用。
3.将很多小图拼接成一张大图,载入内存时一次载入,提高了载入速度。
PackTextures.sh打包命令脚本
#!/bin/bash
CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $CUR_PATH #当前文件夹路径# 填写自己的路径
TP="/Applications/TexturePacker.app/Contents/MacOS/TexturePacker"#文件输出路径
OUTPUT_PATH="$CUR_PATH/out"# --premultiply-alpha \ #这个参数可以消除白边,但对白色透明变黑
# --dither-atkinson-alpha \# --content-protection 5abc11740879b2ff6d36f2c9d4d7d088 \ #这个参数是图片加密
function PackTextures(){if [ -f "${TP}" ]; thenecho "building Images... ${1}"${TP} --smart-update \--texture-format pvr2ccz \--format cocos2d \--enable-rotation \--padding 2 \--shape-padding 2 \--trim-mode None \--scale 1.0 \--max-width 4096 \--max-height 4096 \--data "$OUTPUT_PATH"/"${1}".plist \--sheet "$OUTPUT_PATH"/"${1}".pvr.ccz \--size-constraints AnySize \--opt RGBA8888 \--dither-atkinson-alpha \"${1}"/*.pngecho "---------${1}\n\n"else#if here the TexturePacker command line file could not be foundecho "TexturePacker tool not installed in ${TP}"echo "skipping requested operation."exit 1fi
}#对当前目录下的子文件下的png文件进行合图操作
for dir in `ls` ;doif [ -d $dir ];thennum="$(ls -l ${dir} | grep '.png' | wc -l)"if (($num > 0));thenPackTextures $dirfifi
done
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
