用图片字而不是图片

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

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. DWR的Reverse Ajax技术实现

    DWR的逆向ajax其实主要包括两种模式:主动模式和被动模式.其中主动模式包括Polling和Comet两种,被动模式只有Piggyback这一种. 所谓的Piggyback指的是如果后台有什么内容需 ...

  2. PHP调用SQL Server存储过程

    一.安装SQL Server Driver for PHP     在微软官网上发现了这个东西,他提供了一套PHP对MS2005/2008操作的全新函数库,并且支持UTF8,作为PHP的扩展运行.看来 ...

  3. js事件绑定

    事件绑定,常见的是odiv.onclick=function(){..........};  这种方式绑定事件太单一,如果绑定多个,那么最后一个事件会覆盖掉之前的,也就是说只执行最后一次绑定的事件,这 ...

  4. 如何解决div层被flash遮盖的问题

    页面构建中的Flash层会遮挡Div的问题,一般通过设置wmode="transparent" 或wmode="window"就可以解决.不过对于Flash视频 ...

  5. sqlserver允许远程连接的配置

    如果无法通过IP地址远程连接你服务器上的SQL Server服务器,可以参考下面的内容进行设置 在进行下述设置之前,应该确保你的网络已经安装设置完毕,服务器已经正常连接到网络中. 1.单击Window ...

  6. 调试CRM JS开发

    CRM 2013 的表单是一个IFrame,如果使用jquey来控制表单的话调试起来比较麻烦,如果直接使用浏览器(firefox)来开发和验证脚本可能会事半功倍. 首页列表页主窗体:var table ...

  7. [ javascript canvas toDataURL() clip() ] javascript canvas toDataURL() clip() 属性及方法演示

    <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...

  8. Android源码分析之Looper

    先来说说summary,Looper就是用来在某个线程中跑一个message loop.一个线程默认是没有message loop与之相关联的, 为了创建一个你必须在这个线程中调用Looper.pre ...

  9. dubbo学习之服务消费者

    1.简介 上节讲了如何发布一个dubbo服务,这节主要讲如何进行消费,创建一个消费者. 2.详细步骤 2.1 项目目录结构 2.2 创建maven项目 这里演示时其实通过一个main方法就可以了,没必 ...

  10. apt-get

    更新版本: apt-get --reinstall install apache2 卸载: apt-get remove apache2          只删除软件包 apt-get autorem ...