生活随笔
收集整理的這篇文章主要介紹了
TexturePacker图集拆分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
直接上代碼
PngSplit.py
import os
,sys
import plistlib
from PIL
import Image
def gen_png_from_plist(plist_filename
, png_filename
):file_path
= plist_filename
.replace
('.plist', '')big_image
= Image
.open(png_filename
)root
= plistlib
.readPlist
(plist_filename
)frames
= root
['frames']to_list
= lambda x
: x
.replace
('{','').replace
('}','').split
(',')to_int
= lambda x
:int(x
)for frame
in frames
:framename
= frame
.replace
('.png', '')size
= frames
[frame
].sourceColorRectsize
= to_list
(size
)size
= map(to_int
, size
)spriteSize
= frames
[frame
].sourceSizespriteSize
= to_list
(spriteSize
)spriteSize
= map(to_int
, spriteSize
)textureRect
= frames
[frame
].frametextureRect
= to_list
(textureRect
)textureRect
= map(to_int
, textureRect
)result_box
= textureRectresult_image
= Image
.new
('RGBA', spriteSize
, 0)if frames
[frame
].rotated
:result_box
[0] = int(textureRect
[0])result_box
[1] = int(textureRect
[1])result_box
[2] = int(textureRect
[0] + textureRect
[3])result_box
[3] = int(textureRect
[1] + textureRect
[2])else:result_box
[0] = int(textureRect
[0])result_box
[1] = int(textureRect
[1])result_box
[2] = int(textureRect
[0] + textureRect
[2])result_box
[3] = int(textureRect
[1] + textureRect
[3])rect_on_big
= big_image
.crop
(result_box
)if frames
[frame
].rotated
:rect_on_big
= rect_on_big
.transpose
(Image
.ROTATE_90
)result_image
.paste
(rect_on_big
)if not os
.path
.isdir
(file_path
):os
.mkdir
(file_path
)outfile
= (file_path
+'/' + framename
+'.png')print outfile
, "generated"result_image
.save
(outfile
)if __name__
== '__main__':filename
= sys
.argv
[1]plist_filename
= filename
+ '.plist'png_filename
= filename
+ '.png'if (os
.path
.exists
(plist_filename
) and os
.path
.exists
(png_filename
)):gen_png_from_plist
( plist_filename
, png_filename
)else:print "make sure you have boith plist and png files in the same directory"
使用方法:
把python 文件放入有圖集的目錄下,運行py文件 并輸入文件名稱
例如:python PngSplit.py 文件名
總結
以上是生活随笔為你收集整理的TexturePacker图集拆分的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。