日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TexturePacker命令行使用(command line)

發布時間:2023/12/3 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TexturePacker命令行使用(command line) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TexturePacker是一個非常好用的小圖合并工具,介紹它的文章非常多,多數都是使用GUI工具的,但是:

  • 如果原始圖片發生了改變,我們就需要重新手動拼接一下,麻煩.
  • 使用GUI界面非常不高端,我高大猿族絕對首選使用Command Line啊.
  • 安裝TexturePacker會附帶一個command line工具,讓我們一起學習一下如何使用吧.

    ##環境搭建
    我一般首選在Windows下開發(不要打我),這里就只講Windows環境的配置

    1.先去這里下載安裝文件,完成后一路無腦下一步,OK.

    2.大家在C:\Program Files\TexturePacker\bin目錄下可以看到兩個exe文件,TexturePacker.exe和TexturePackerGUI.exe,前者是命令行工具,后者是GUI工具.

    3.默認TexturePacker是沒有加到環境變量中的,我們需要手動來,右鍵點擊計算機->屬性->高級系統設置->環境變量,找到PATH后將C:\Program Files\TexturePacker\bin添加到末尾,注意要在前面加;.

    4.運行cmd,輸入TexturePacker大家應該能夠看到下面的內容:

    如果不能的話請檢查拼寫和第2步.大家可以仔細閱讀一下內容,寫的十分詳細,用過TexturePacker的話基本上都能對應起來.

    ##小試牛刀
    你過你看完打印出的信息的話可以發下末尾部分有三個示例,如下:

    看起啦十分簡單,讓我們試一下吧,感謝微博小伙伴@sosoayaen發現的小秘密,使得我們可以快速的在任意位置打開命令行.找一個有這一堆圖片的文件夾的上層目錄,按住Shift點擊右鍵,會發現一個菜單項在當前目錄打開命令行,打開后按照示例輸入TexturePacker 001/*.png,然后如示例說的:

    creates out.plist and out.png from all png files in assets
    trimming all files and creating a texture with max. 2048x2048px

    實際情況卻不完全是這樣的,你可能會得到這樣的錯誤:


    臥槽,這是什么情況啊,明明就是按照官方的示例來的嘛,google完全沒有任何答案啊,經過一番痛苦的實驗后,終于發現了原因所在,這里不能輸入:

    1 TexturePacker 001/*.png

    ?

    而應該是這個樣子:

    1 TexturePacker 001

    ?

    這個問題可能是由于我使用的版本太舊或使用Windows導致的,如果你沒有遇到,那么最好!

    ##參數詳解
    本想著把所有參數都講一遍,寫到一半發現臥槽太多了,而且好些都用不到,這里挑一些常用的分析下,以下內容都有進行測試,還是比較準確的,如果有問題,歡迎指出.
    注:

  • 選項含有<...>的選項表示含有參數需要填寫.
  • 粗體表示比較重要的選項.
  • ####輸出

    –sheet?<filename>
    +生成的圖片名,支持png,jpg,pvr,pvr.czz,pvr.gz格式
    +示例:--sheet out.png

    –data?<filename>

    • 生成的plist文件名
    • 示例:--data out.plist

    –format?<format>

    • 生成的plist格式,我們使用cocos2d格式
    • 示例:--format cocos2d
    • 注:其他支持格式見下圖:

    –auto-sd

    • 自動生成sd資源
    • 示例:--auto-sd
    • 注:這個要注意一點,如果要使用這個參數,你輸入的sheet和data名必須含有-hd或@2x,TP會自動生成不帶后綴的sd數據.

    –texturepath?<path>

    • 在生成的sheet文件的路徑前加你
    • 示例:--texturepath image/tower?這樣在plist文件中realTextureFileName的值為image/tower/out.png
    • 注:這個參數主要用在當你的圖片與plist文件不再同一個目錄時使用,不會改變out.png的目錄

    –trim-sprite-name

    • 剪裁掉拼接圖片的后綴名
    • 示例:--trim-sprite-name?這樣在plist文件中<key>001.png</key>會變成<key>001</key>
    • 注:是剪裁用來拼接的文件而不是生成文件,如果你的資源管理類似于android那樣,使用圖片時不加后綴名,那么打包時可以使用這個選項

    –replace?<regexp>=<string>

    • 按照原文的翻譯是使用<string>替換掉拼接圖片的文件名中正則表達式匹配的字符串
    • 臥槽,正則表達式啊一聽就尼瑪高大強啊,可惜老夫不會啊,怎么辦呢?回家去翻翻金瓶梅改天告訴大家.
    • 這個TM太有用了,后面我遇到的那個問題,用這個來解決最好不過了

    –ignore-files?<regexp>

    • 按照原文的翻譯是忽略所有滿足給定條件的圖片(可以使用時間作為條件),你可以使用*或?,但在使用bash時應避免使用通配符.

    ####尺寸

    先上一張cocos2d-x支持的最大圖片尺寸:

    還有官方的這句話:

    For the developers, if you want to cross platforms and run your games smoothly, you should keep your texture size?less than 1024*1024, that is the lowest restriction for most machines.

    –width/–height?<int>

    • 兩個參數,放在一塊說了,設置輸出圖片的寬度/高度
    • 示例:--width 100?--height 100
    • 注:這個值設置的大了無所謂,會產生空白區域,但是如果太小,就會報錯:
      1 error: Could not fit all sprites into the sprite sheet.

    –max-width/–max-height/–max-size?<int>

    • 設置輸出圖片的最大寬度/高度/尺寸
    • 示例:--max-width 1024?--max-height 1024?前面兩個等價于后面?--max-size 1024
    • 注:
      1.和上面兩個參數的區別在于告訴TP實際值別超過這個值就OK,而上邊那兩個參數告訴TP實際值一定是這個.
      2.默認值為2048
      3.如果實際值大于設置的最大值會產生錯誤:
      1 error: Sprite sheet size is too small.

    –allow-free-size

    • 允許輸出圖片不是2的冪,以最小尺寸輸出
    • 示例:--allow-free-size
    • 注:這個一般開啟,cocos2d-x2.0開始就已經支持圖片不是2的冪了

    ####間距和旋轉

    –shape-padding?<int>

    • 圖塊之間縫隙的寬度,默認值是2
    • 示例:--shape-padding 100

    –border-padding?<int>

    • 可以理解為邊框的寬度,默認值為2
    • 示例:--border-padding 100

    –padding

    • 間距,這個參數等價于上面兩個參數同時同時作用
    • 示例:--padding 100
    • 注:如果沒有開啟--allow-free-size可能和你想象的不太一樣

    –inner-padding

    • 試了一下,這個參數的作用應該是給每個sprite的周圍加一個邊框,默認值為0
    • 示例:--inner-padding 100
    • 注:上面的這幾個參數作用都不是很大

    –enable-rotation/diable-rotation

    • 開啟/關閉旋轉,默認值和輸出的格式有關系,cococ2d格式默認enable
    • 示例--enable-rotation?--diable-rotation
    • 注:這個很好理解,為了排版更密集些,有的圖片會被旋轉

    –trim/no-trim

    • 剪裁圖片,即移除圖片周圍的透明像素,保留原始尺寸,默認開啟
    • 示例:--trim?no-trim
    • 注:這個要格外注意一下,這個參數略微有些問題,如果沒有了解帶來的后果的話還是使用--no-trim更安全些,我會在后面的仔細講一下.

    –crop

    • 與上面的一條類似,移除圖片四周的透明像素,不保留原始尺寸,保存為一張更小的圖片
    • 示例:--crop
    • 注:同上,要小心使用,盡量不在這里使用,而是改為前期用其它工具處理

    –trim-threshold

    • 與Trim類似,只是這個選項有一個參數,表示剪裁掉alpha值小于這個參數的像素,取值0~255,默認為0.
    • 示例:--trim-threshold

    –disable-auto-alias

    • 關閉自動命名,什么意思呢?TP在打包時會自動識別相同的圖片,最終在大圖里只會保留一張,這樣會更加的節省資源,這個參數將會關閉這個功能
    • 示例:--disable-auto-alias
    • 注:這樣參數還是不要設置的好

    ####其他常用選項

    –opt

    • 設置輸出圖片的像素格式 一般默認RGBA8888
    • 示例:--opt RGB444
    • 注:這個選項一般不做更改,如果想壓縮資源體積的話,可以改為RGBA4444這樣圖片可以減小一半的體積.具體大家可以看下面這張圖:

    ##常見問題

    錯誤:?error: Error in sprite:?.png: Failed to load image!
    解決方案:?去掉目標路徑末尾的.png試試.

    錯誤:?error: Could not fit all sprites into the sprite sheet.
    解決方案:
    1.查看有無設置--width or --height,這個錯誤通常是由于輸出圖片的尺寸太小導致的.
    2.查看有無--max-width/--max-height/--max-size,沒有的話加上,有的話將參數值改大一些.

    錯誤:?error: Sprite sheet size is too small.
    解決方案:參見上個錯誤中的解決方案2,--max-width/--max-height/--max-size默認值為2048,試著改成4096試試,如果解決了,不要高興,因為大多數移動設備都不支持這個尺寸,可以考慮分開打包.

    錯誤:?error: Unknown argument –XXX - please check parameters or visit?http://www.texturepacker.com?for newer version
    解決方案:?檢查XXX的拼寫是否正確

    問題:?程序中獲得圖片的尺寸與打包前不一致
    解決方案:?檢查參數是否含有--crop,有的話刪除,有沒有--no-trim,沒有的話加上.

    ##后記
    講了那么多參數,其實常用的沒有幾個,下面這個是我最終使用的命令:

    1 TexturePacker --sheet out.png --data out.plist --allow-free-size --no-trim --max-size 1024 --format cocos2d animation

    ?

    文章到這里就要結束了,但其實還沒有完,--trim到底為什么不建議使用?使用了會發生什么問題?它和--crop的具體區別在哪里?plist文件中frame的路徑和其他plist的重復了怎么辦?程序中怎么做才能做到打包和不打包的差異最小化?金瓶梅你什么時候看完?

    ?

    ?

    ?

    本文標題:在Command Line中使用TexturePacker

    文章作者:justbilt

    發布時間:2013-12-12, 10:33:02

    最后更新:2016-02-14, 13:21:11

    原始鏈接:http://blog.justbilt.com/2013/12/12/use_tp_on_command_line/?

    許可協議:?"署名-非商用-相同方式共享 4.0"?轉載請保留原文鏈接及作者。

    總結

    以上是生活随笔為你收集整理的TexturePacker命令行使用(command line)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。