fnt美术字处理 阴影部分
?
1.python文件處理
?
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import os,sys?
from xml.etree import ElementTree
reload(sys)
sys.setdefaultencoding( "utf-8" )
TOOLS_PATH = os.getcwd()
def tree_to_dict(tree):
count = 0
d = {}
pngName = ""
for index,item in enumerate(tree):
if item.tag == "key" and item.text == "frames":
for framesIndex,framesItem in enumerate(tree[index+1]):
if framesItem.tag == "key":?
count = count + 1?
d[count] = {}
d[count]['letter'] = os.path.splitext(framesItem.text)[0]
for frameIndex,frameItem in enumerate(tree[index+1][framesIndex+1]):
if frameItem.tag == "key" and frameItem.text == "frame":
frameData = tree[index+1][framesIndex+1][frameIndex+1].text
tempData = ?frameData.replace('{','').replace('}','').split(",")
d[count]['x'] = tempData[0]
d[count]['y'] = tempData[1]
d[count]['width'] = tempData[2]
d[count]['height'] = tempData[3]
if item.tag == "key" and item.text == "metadata":
for metadataIndex,metadataItem in enumerate(tree[index+1]):
if metadataItem.tag == "key" and metadataItem.text == "realTextureFileName":
pngName = tree[index+1][metadataIndex+1].text
fntFileName = TOOLS_PATH+"/"+os.path.splitext(pngName)[0]+".fnt"
openFile = open(fntFileName,'w')
openFile.write('info face=\"\" size=1 bold=0 italic=0 charset=\"\" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2')
openFile.write('\ncommon lineHeight={:d} base=0 scaleW=0 scaleH=0 pages=1 packed=0'.format(int(d[1]['height'])))
openFile.write("\npage id=0 file=\"{:s}\"\n".format(pngName))
openFile.write("chars count={:d}\n".format(len(d)))
for k in d:
openFile.write("char id={:d} x={:d} y={:d} width={:d} height={:d} xoffset=1 yoffset=0 xadvance={:d} page=0 chnl=0 letter=\"{:s}\"\n".format(int(ord(d[k]['letter'])),int(d[k]['x']),int(d[k]['y']),int(d[k]['width']),int(d[k]['height']),int(d[k]['width']),str(d[k]['letter'])))
openFile.write("kernings count=0")
openFile.close()
return d
def plist_to_fnt_change(plist_filename="/Users/liwenrui/Desktop/shareMidText.plist"):
print plist_filename?
root = ElementTree.fromstring(open(plist_filename,'r').read())
tree_to_dict(root[0])
if __name__ == '__main__':
if len(sys.argv) > 1:
plist_to_fnt_change(sys.argv[1]);
else:
plist_to_fnt_change();
?
2.圖片為命以圖片的字為名字的png
3.然后打包成大圖不允許旋轉生成plist
4.pyton讀取plist生成fnt 文件目錄在同一個目錄下 如果圖片不一致導致上下不對齊 xadvance 手動調整或做高度一樣圖片
5.注意特殊字符需要手動處理和生成的Plist暫時沒有處理路徑問題。
?
?
總結
以上是生活随笔為你收集整理的fnt美术字处理 阴影部分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sox处理mp3_SoX 音频处理工具使
- 下一篇: MFC中五个初始类的作用