MTK点阵字库介绍

MTK点阵字库介绍:

每个字符都是由点阵组成,每个字符的每个像素由黑或者白两种点填上,假设该字符是14*14,那么

该字符由14*14=196个像素组成,其中黑色部分就型成了A这个字,比如图一所示。

 

 

用UE打开该BDF文件可以看到如下内容:

STARTFONT 2.1

COMMENT Used in M3

COMMENT Author: Wangbo(Longcheertel software department)

FONT -Longcheertel-WB medium-r-normal--14-140-75-75-c-140-GB2312-13X14

SIZE 14 75 75

FONTBOUNDINGBOX 14 14 0 -3 

STARTPROPERTIES 14

FONT_ASCENT 11

FONT_DESCENT 3

DEFAULT_CHAR 12288

COPYRIGHT "Shanghai Longcheer Telecommunication Co, Ltd."

POINT_SIZE 140

WEIGHT 10

RESOLUTION 103

RESOLUTION_X 75

RESOLUTION_Y 75

X_HEIGHT 4294967295

QUAD_WIDTH 14

ENDPROPERTIES

CHARS 7104

STARTCHAR 601

ENCODING 913

SWIDTH 560 0

DWIDTH 14 0

BBX 14 14 0 -3

BITMAP

0000

0200

0500

0500

0880

0880

1040

1FC0

2020

2020

4010

E038

0000

0000

ENDCHAR

其中

0000

0200

0500

0500

0880

0880

1040

1FC0

2020

2020

4010

E038

0000

0000

这段数据的意思是表示黑白像素的,共14行,第一行0000表示第一行全为白点无黑占,第二0200表示在七位有一个黑点,其他都为白点

 

 

 

MTK字库是由BDF文件通过MCT工具转化而来。

转化后生成一个.H和一个.C文件,其中.h文件里面有四个数组:

L_MTK_Latin_16_Width[]代表每个字符的宽度是多少,数组大小代表字符数目

L_MTK_Latin_16_Offset[]代表每个字符数据在L_MTK_Latin_16_Data里的位置,比如0x0000,0x000A,就是说该字符数据在L_MTK_Latin_16_Data第0位至第10位之间(0x000A转化成十进制后为10),

L_MTK_Latin_16_RangOffse[]

L_MTK_Latin_16_Data[]代表每个字符的实际数据内容

 

比如:字符A这个BDF文件转化成代码以后如下:

const U8 GB3212_13X14_Width[1]= {

0xE/*字符宽度为14*/

}

const U32 GB3212_13X14_Offset[7105]= {

0x0000,0x0019/*字符数据范围为0-25*/

}

const U32 GB3212_13X14_RangeOffset[3563]= {

0,

}

const U8  GB3212_13X14_Data[1]= {

0x0,0x0,0x10,0x0,0xA,0x80,0x2,0x10,0x1,0x44,0x80,0x20,0xE0,0xF,0x4,0x4,

0x1,0x21,0x80,0x1C,0x70,0x0,0x0,0x0,0x0/*字符A的位图结构*/

}

 

我们取GB3212_13X14_Data[1]的前四位数据分析一下是怎么表示字符A的

0x0,0x0,0x10,0x0展开成二进制就是:

0000 0000

0000 0000

0001 0000

0000 0000

 

高低位字节颠倒后就为:

0000 0000

0000 0000

0000 1000

0000 0000  

这里的0代表白格,1代表黑格,在第21位有一个1即有一个黑格,与图一正好吻合。

其他数据以此类推。

v1.11 (08/14/2012) 1. 增加注册年限选择。 v1.10 (06/26/2012) 1. 精简字库检索表。 2. 增加 GBK 字库输出。 3. 增加一种点阵数据存储格式(只存有效像素数据--not fixed, 不支持MBCS编码格式的中日韩), 对泰文,缅甸文等特殊语种显示非常便捷。 v1.09 (06/15/2012) 1. 增加输出 C 语言(数组) 字体格式。 V1.08 (05/17/2012) 1. 增加了两个版本(免费和试用版) 免费版 只对 16点阵有效。 试用版 对所有点阵有效,但是会缺部分字符。 2. 增加热键功能。 3. 修改了多国语言生成.h文件时,start 与 end 不匹配的bug。 4. 完善文档《GuiTool 使用说明》, 增加更多图解说明。 文档下载地址: http://ishare.iask.sina.com.cn/f/24472766.html v1.07 (05/02/2012) 1. 修改注册方式(改为文件)。 2. 增加bdf格式编码过滤功能,主要是为了支持 MTK 手机点阵字库。 3. 增加xp控件属性。 4. 增加扫描模式图解。 5. 修改了 bdf 2 bin 的一个bug。(选择输出位图时,会输出n个位图文件) 6. 修改了 BDF 文件中当字符显示宽度为0,存位图(所有字符存一张图片)失败的错误。 v1.06 (04/10/2012) 1. 增加系统字体支持,操作更简便,快捷。 枚举所有已安装系统字体,直接选择即可。 v1.05 (03/24/2012) Fontmaker(点阵字库) 1. 修正了字符对齐问题。 2. 增加了单个字符或多个字符输出成位图文件设定。 3. 完善了阿拉伯文字库(unicode 字库有效)。 4. 增加自定义字符功能(unicode 字库有效)。 Multi-language(多国语言) 1. 增加输出编码格式 (mbcs, utf16-lb, utf8)设置 2. 增加数组格式输出。 Image Manager(图像管理) 1. 该页为新增功能,支持图片图像的数据转换。主要应用在做产品logo图片方面。 V1.04 (07/16/2011) 1. 增加了一个字符串mbcs2unicode(内码转统一码)的功能。 (支持转:U16-LE, U16-BE, UTF8) V1.03 (07/05/2011) 1. 修改了 Example 中点阵字库解析源码,更加便于移植。(基本做到只需修改font_file.c 即可) 2. 修改了内码(MBCS)字库点阵信息读取的一个错误。 3. 增加了多语言支持(简中,英文),还有待完善。。。 V1.02 (07/01/2011) 1. FontMaker V2.03 a. 增加字符宽高比调节(HorR & VerR) b. 增加对*.ttc 字库的支持。 c. 增加bdf(*.bdf)文件格式转Simple Unicode编码格式的bin文件。 V1.01 (06/29/2011) 1. FontMaker V2.02 a. 增加了 Simple Unicode功能。(适合小字库) b. 增加了 “扫描方向及反显”设置。 2. Multi-Language V1.01 a. 修改了除 office 2000 外,其它不能支持的问题。 V1.00: (2007-2011) 1. 继承 FontMaker V2.01 的所有功能。 2. 增加了一个 Multi-Languge V1.00 的打包转换功能。 FontMaker 基本功能: 1.支持所有 windows 字符集:CP932(日文Shift-JIS)CP936(简体中文GBK)CP949(韩文)CP950(繁体中文 Big5),CP874(泰文),CP1250(中欧)CP1251(西里尔文),CP1252(西欧--"拉丁文I"),CP1253(希腊文), CP1254(土耳其文),CP1255(希伯来文),CP1256(阿拉伯文),CP1257(波罗的海文),CP1258(越南) 2.支持非等宽字库。 3.支持BIN,TXT,BMP,BDF 文件输出。 4.支持unicode字库输出,即可以做到在一个窗口中同时显示多国语言(文字) 5.支持单个字符编辑,预览(所见即所得)。 6.支持字库文件和输出路径记忆功能. 7. 支持从bdf格式转换自定义字库(bin文件)格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值