[影象]TexturePacker打包命令指令碼
阿新 • • 發佈:2018-12-30
TexturePacker是一款把若干資源圖片拼接為一張大圖的合圖工具,在遊戲開發以及網頁製作中經常會使用到這個工具。為什麼需要使用這個工具呢?
我們這裡需要了解一個概念:圖片格式(Image format)。圖片格式有RGBA8888、RGBA4444、RGBA5555、RGB888等等。
所以,在遊戲開發使用圖片資源時,我們要儘量保證圖片的大小在接近且不大於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}" ]; then echo "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}"/*.png echo "---------${1}\n\n" else #if here the TexturePacker command line file could not be found echo "TexturePacker tool not installed in ${TP}" echo "skipping requested operation." exit 1 fi } #對當前目錄下的子檔案下的png檔案進行合圖操作 for dir in `ls` ;do if [ -d $dir ];then num="$(ls -l ${dir} | grep '.png' | wc -l)" if (($num > 0));then PackTextures $dir fi fi done