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美术字处理 阴影部分相关推荐

  1. Unity教程之-UGUI美术字体的制作与使用

    文章转载自:http://www.unity.5helpyou.com/3211.html 游戏制作中,经常需要使用各种花哨的文字或者数字,而字体库往往不能达到我们需要的效果,因此需要一种用图片替代文 ...

  2. Unity3d之-使用BMFont制作美术字体

    一.需求 游戏开发中经常遇到需要以美术字(而非字库)做数字显示的情况,通常美术会提供一组包含单个数字(也会有其它字符)的图片,可能是一张整图,也可能是每个数字分开的散图. 在此我以一张整图这种情况为例 ...

  3. 技术美术面试问题整理

    这是我前一阵子找实习所准备的有关内容,部分是来自于网上搜索到的别人的面经问题,部分是自己整理的一些比较基础的问题.这里我主要是自己又整理了一遍,结合网上的解释,以自己的理解写了写问题的解答.大家可以参 ...

  4. 探索<赛博朋克>风格游戏美术

    赛博朋克美术风格无疑是当下最流行的游戏美术风格之一,<赛博朋克2077>把它展现的淋漓尽致.最近几年国内大小厂也开始陆陆续续加入探索赛博朋克美学的队列,UE4引擎默认的PBR渲染管线也使小 ...

  5. 计算机二级office——word字处理第一套习题

    Word字处理习题 →\rightarrow→第一套习题 1 . 题干 请在[答题]菜单下选择[进入考生文件夹]命令,并按照题目要求完成下面的操作. ​ 在考生文件夹下打开文档 ( Word素材.do ...

  6. 【技术美术图形部分】AO理论及优化 AO贴图如何参与渲染

    写在前面 昨天从美术的角度出发,对AO贴图参与到次世代建模流程中的过程进行了学习.今天从图形学角度学习环境光遮蔽. 封面图截取自实时渲染GI|Ambient Occlusion:AO.SSAO.HBA ...

  7. UGUI运用美术字体

    UGUI运用美术字体 在游戏的制作中,美术字的运用是美化游戏的常用手段.比如普攻,暴击打出的战斗飘字就常常利用不同的美术字来做出区别.那么在Unity中如何把美术字运用起来呢?且看下文: 1.道具准备 ...

  8. [UnityUI]美术字体的制作与使用

    原文链接:http://www.redblack.cn/?p=107 1.让美术提交分块后的文字: 2.打开BMFont工具,找到图片管理(Edit->Open Image Manager): ...

  9. 用BMFont做UGUI美术字体

    项目中经常会用到数字图片来显示玩家战力.战斗中的伤害数等,可以借助BMFont来制作一种字体,步骤如下: 1,先位图字体制作工具在电脑上安装好BMFont软件(位图字体制作工具),安装好之后打开如下: ...

  10. 计算机应用和动画美术,美术教育和计算机应用

    随着多媒体技术的迅速兴起,人们对计算机的应用要求越来越高.文字编辑.图像处理.课件.网页的制作等等,其图文并茂和活动影像等特点给人以立体的感官刺激.然而,美中不足的是,大部分单调的版面或零碎.过分运用 ...

最新文章

  1. sphinx+coreseek创建中文分词索引
  2. java 空格乱码_java 中文乱码以及空格乱码解决方案总结
  3. MySQL Commons
  4. 域电脑不能显示桌面_学会这些电脑操作,工作更高效,摸鱼更舒适!
  5. Drools与Spring集成 登录测试
  6. 将虚拟主机加入到netskills.net域环境_网站建设阿里云虚拟主机、ECS服务器、企业邮箱选择购买指南...
  7. spring mvc学习(9):路径参数
  8. DTS开发记录(序)
  9. C/C++ OpenCV图像的尺寸变化
  10. 性能测试--jmeter结合charles,以及charles的基本使用【11】
  11. idea中鼠标左键选中代码是矩形
  12. de4dot命令 v2.0.3.3405 破解命令
  13. IDEA java 中文乱码解决方法
  14. matlab 添加断点,matlab设置断点
  15. 2021新宁二中高考喜报成绩查询,新宁二中举行2021年高考倒计时100天誓师大会
  16. 关于音视频直播技术的总结
  17. poj3182(bfs)
  18. java向kafka推送数据_Java kafka消息的发送与接收
  19. HTTP 各种状态码代表的含义
  20. 【算法导论06】递归算法-perm算法

热门文章

  1. Android请求麦克风权限+系统权限页面回调
  2. VB的阶乘和伽马函数
  3. Multisim14.0安装教程
  4. 聚类法 人脸识别 matlab,声纹识别 快速概览 + 详细了解N:N聚类算法是如何应用的...
  5. 基于matlab的声音个数识别
  6. 产品规划立项流程(CDP)
  7. 关于计算机应用技术的创业策划书,创新创业项目计划书(双创博士)
  8. 中国移动”5G大规模外场测试技术要求(V1.0)”基站要求
  9. C语言齿轮参数计算程序,C语言程序实现齿轮基本参数几何尺寸计算.pdf
  10. 软件需求说明书/ 概要设计说明书/项目开发计划/详细设计说明书(说明要点及要点解释)