用图片字而不是图片

美术和程序的配合,需要程序能够很快抓住问题重点并提出解决方案.美术出的图片字比我们使用的字体更好好看,那么是否要一个个图片去拼成数字呢?

NGUI创建图片字

准备材料

美术提供的数字图片

BMFont 字体制作软件

美术资源处理

1、使用BmFont先导出一张只有数字的图片字,会得到两个文件

2、将得到的xxx.fnt文件改后缀为xxx.txt

3、使用notepad++或Sublime Text打开(或使用其它带有列编辑功能的文本编辑器)

info face="微软雅黑" size= bold= italic= charset="" unicode= stretchH= smooth= aa= padding=,,, spacing=, outline=
common lineHeight= base= scaleW= scaleH= pages= packed= alphaChnl= redChnl= greenChnl= blueChnl=
page id= file="space2_0.png"
chars count=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset=- yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=

4、通过观察上面的这段文本,其中的规律为

查找字符ID

其中字符的id可以通过BMFont得到,鼠标移动到一个字符上,右下角即会显示会该字符的ID,如下图片所示,选择0,右下角Id为48

制作NGUI字体prefab

5、根据规律修改BMFont导出的文件后,把 xxx.txt导入到Unity中,就可以使用NGUI的Font Maker制作图片字了

遇到问题?

6、字体Prefab制作好之后,如果遇到字体丢失,可以重新拖入字体信息txt

7、多测试修改下字体文件的间距及宽度大小,达到和美术那边一样的效果

我的例子

附上我的测试数据

美术图片尺寸:260 x 31

字符总数:共10个字符,每个字符的间距相等(方便x递增)

info face="微软雅黑" size= bold= italic= charset="" unicode= stretchH= smooth= aa= padding=,,, spacing=, outline=
common lineHeight= base= scaleW= scaleH= pages= packed= alphaChnl= redChnl= greenChnl= blueChnl=
page id= file="ingame_enemies_round_number.png"
chars count=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=
char id= x= y= width= height= xoffset= yoffset= xadvance= page= chnl=

图片字效果

根据美术提供的这张图,程序调试出字体信息文件参数,就可以换使用图片字体一样啦

注意事项

建议

  • 美术出的图每两个字之间间距为2px,或根据实际情况
  • 数字从0开始,9结束(否则请修改文本的字符id)
  • 图片建议为png,带透明通道

确保事项

  • 一定要确保每两个字之间的间距相等

单张数字图处理

如果是美术给的是单张的图片,可以参考下面这篇博客 http://blog.csdn.net/keshuiyun/article/details/9960667

NGUI图片字(Bitmap图片转文字)的更多相关文章

  1. NGUI和UGUI图片字 艺术字(Bitmap图片转文字)制作方法

    用图片字而不是图片 美术和程序的配合,需要程序能够很快抓住问题重点并提出解决方案.美术出的图片字比我们使用的字体更好好看,那么是否要一个个图片去拼成数字呢? NGUI创建图片字 准备材料 美术提供的数 ...

  2. android 通过uri获取bitmap图片并压缩

    很多人在调用图库选择图片时会在onActivityResult中用Media.getBitmap来获取返回的图片,如下: Uri mImageCaptureUri = data.getData(); ...

  3. (转)打印相关_C#图片处理Bitmap位图缩放和剪裁

    原文地址:http://blog.sina.com.cn/s/blog_6427a6b50101el9d.html 在GDI+中,缩放和剪裁可以看作同一个操作,无非就是原始区域的选择不同罢了. /// ...

  4. Html、Css-----当有文字和图片的时候,需要文字和图片居中,怎么实现?不想文字换行怎么设置

    1 当有文字和图片的时候,需要文字和图片居中,怎么实现? <a href=#" target="aa" style="white-space:nowrap ...

  5. Android中如何将Bitmap byte裸数据转换成Bitmap图片int数据

    Android中如何将Bitmap byte裸数据转换成Bitmap图片int数据 2014-06-11 10:45:14   阅读375次 我们在JNI中处理得到的BMP图片Raw数据,我们应该如何 ...

  6. 异步加载图片以及Bitmap相关处理方法

    私类: // 异步更新Image private class GetImageTask extends AsyncTask<String, Void, Bitmap> { // 覆写的方法 ...

  7. Android性能优化系列之Bitmap图片优化

    https://blog.csdn.net/u012124438/article/details/66087785 在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitma ...

  8. Android—将Bitmap图片保存到SD卡目录下或者指定目录

    直接上代码就不废话啦 一:保存到SD卡下 File file = new File(Environment.getExternalStorageDirectory(), System.currentT ...

  9. 将linlayout布局转为bitmap图片和保存

    1.首先新建路径 File filedirs = new File(Environment.getExternalStorageDirectory(), "/YuLin/"); i ...

随机推荐

  1. 硅谷新闻3--使用Android系统自带的API解析json数据

    NewsCenterPagerBean2 bean2 = new NewsCenterPagerBean2(); try { JSONObject object = new JSONObject(js ...

  2. 干净的停止tomcat/java应用程序

    通常在使用了jdbc或者netty的应用程序中,当shutdown tomcat或java应用程序时,会出现无法停止的情况,报类似如下错误: 严重: The web application [] re ...

  3. vIDC v2.0 强大的端口转发神器使用总结-开放内网tfs代码服务

    vIDC2.0 端口映射工具,最近在公司闲来无事,想自己整个tfs来管理自己的研究代码. 本来是想用微软Visual Studio提供的免费tfs,但是无奈速度太慢.他们的服务器在美国,中国也没有代理 ...

  4. SharePoint 中关于event receivers的讨论

    今天一早,跟几个小伙伴在群里讨论了有关事件触发器的东西,感觉收获颇多,拿出来和大家分享.讨论的内容,主要就是关于事件触发器的同步/异步的设置以及作用. 其实接触SharePoint颇久,对于事件触发器 ...

  5. 用Path来绘制一些图形

    Path是android中用来封装几何学路径的一个类,因为Path在图形绘制上占的比重还是相当大的.你可以用它来绘制各种样式的几何图形,做图表什么的都可以. 一.画线段 1.1 lineT(float ...

  6. C语言柔性数组

    结构中最后一个元素允许是未知大小的数组,这个数组就是柔性数组.但结构中的柔性数组前面必须至少一个其他成员,柔性数组成员允许结构中包含一个大小可变的数组,sizeof返回的这种结构大小不包括柔性数组的内 ...

  7. iOS设计模式简介

    开闭原则: 一个模块的修改,对拓展开放而对修改关闭. 举个例子:有一个类在项目中很多地方被使用了,但是由于需求,想对这个类进行拓展,这里可以使用继承拓展出子类,可以对子类进行修改,尽量不要修改原来的类 ...

  8. struts2.3.24 + spring4.1.6 + hibernate4.3.11+ mysql5.5.25开发环境搭建及相关说明

    一.目标 1.搭建传统的ssh开发环境,并成功运行(插入.查询) 2.了解c3p0连接池相关配置 3.了解验证hibernate的二级缓存,并验证 4.了解spring事物配置,并验证 5.了解spr ...

  9. strcpy

    /********************** *C语言标准库函数strcpy的一种典型的工业级的最简实现 *返回值:目标串的地址. *对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返 ...

  10. JavaScript Patterns 2.10 Naming Conventions

    1. Capitalizing Constructors var adam = new Person(); 2. Separating Words camel case - type the word ...