2010年4月號
 

【字型技術】

 
 

 

浅谈Bitmap Font点阵字型及档案结构

 
     
  什么是点阵字(Bitmap Font)  
 

点阵字(Bitmap Font)是由一定的字高(H)和字宽(W)的点矩阵(dot matrix)表示的固定大小字型,通常字高12、14、16点等小字,最能够发挥点阵字型的优势:字型清晰、显示速度快。 点阵字型(Bitmap Font),在size 16x16以下,主要以显示清楚为优先的考虑, 所以是以单线造型为主,点阵字不容易做出造型变化,size 20x20以上,开始可以有造型,有明体、楷体、黑体、圆体、Serif、Sans Serif、Roman 等多种造型可供选择。 CJK汉字、Hangul韩文、全角符号、全角Kana等,是方块字体,采用固定字宽的大小设计,如16x16尺寸。ASCII、Latin英欧文字母、Thai、Arabic、Hindi…等字符,一般采用调和字距设计,每个字符的字宽不等,通常是汉字字宽的一半以下,如【i】、【j】等字,约3 point的字宽,【a】、【b】等字,约9 point的字宽,【m】、【w】等字,约13-15 point的字宽。

 
  点阵字(Bitmap Font)的运用  
 

几年前MP3 Player、低阶Feature Phone、低阶GPS等电子产品,大部分都是使用Bitmap Font点阵字型,作为LCD屏幕显示用字型,原因是Bitmap Font结构简单、Porting容易、不易损耗CPU资源,是最常被采用的字型格式。近几年Smart Phone、STB/DTV、Media Player等中高阶电子产品,虽然都采用Mobile Font、TrueType Font等向量字型,但是为了12、14、16等小尺寸字型的显示质量,还是会将Bitmap Font字型嵌入于向量字之中。 所以,固定大小的Bitmap Font,非常适合应用在低阶消费性产品,及显示功能单纯的装置,这些装置大都使用低分辨率LCD作为显示装置,只需用到小字来显示文字讯息。

 
 

Bitmap font 档案结构简介

 
 

点矩阵字型(Bitmap Font)的表现方式很多样,档案格式不一,例如常见的BMP檔也是格式之一。文鼎提供的点矩阵字型(Bitmap Font)除了可用BMP档来表示之外,还有Row-Scan (Byte or Bit Alignment)、Column-Scan (Bit or Byte Alignment)、BDF字型档案(Bitmap Distribution Format),甚至是客户自订的格式都可以。因格式众多无法一一说明,故就目前文鼎常用的点矩阵字型(Bitmap Font)档案格式来做一简单的介绍

 
 

Bitmap档案格式简介
以下就以一个14Wx14H (实际字面13Wx14H) 的Bitmap字来说明三种文鼎常用的Bitmap格式:

 
 

 

 
 

1. Row-Scan (Byte Alignment)

Record size = 28 bytes (字宽的Byte数再乘以高度值,所以一个字占28 Bytes)
File format : Field 1 (byte 0 - 27) : 14 (width)*14 (height) bitmap font.

当您用编辑软件(须有HEX(16进制)Mode)打开此Bitmap Font的档案时,可以看到下表数据即为上述字符在16进位(HEX)时的表示方式:

以一套BIG-5 Encoding的Bitmap Font为例,其File Size计算方式如下: 一套Big-5字集从A140到F9FE总共有13,973个码位 (其中有13060个汉字、441个符号及472个空字),而每一个字占28 Bytes(字宽的Byte数再乘以高),所以一套字的档案大小为: 13973 (总字数) * 28 (Record size) = 391,244 Bytes


2.Column-Scan (Byte Alignment )

Record size = 28 bytes (字宽的Byte数再乘以高度值,所以一个字占28 Bytes)
File format : Field 1 (byte 0 - 27) : 14 (width)*14 (height) bitmap font.


当您用编辑软件(须有HEX(16进制)Mode)打开此Bitmap Font的档案时,可以看到下表数据即为上述字符在16进位(HEX)时的表示方式:

以一套BIG-5 Encoding的Bitmap Font为例,其File Size计算方式如下: 一套Big-5字集从A140到F9FE总共有13,973个码位 (其中有13060个汉字、441个符号及472个空字),而每一个字占28 Bytes(字宽的Byte数再乘以高),所以一套字的档案大小为: 13973 (总字数) * 28 (Record size) = 391,244 Bytes


3. Column-Scan (Bit Alignment)

字之大小为14 (宽)x14(高),实际字面为13 (宽)x14(高)
Record size = 25 bytes (14(宽)*14(高)/8=无条件进位取整数,所以一个字占25 Bytes)
File format : Field 1 (byte 0 - 27) : 14 (width)*14 (height) bitmap font.


当您用编辑软件(须有HEX(16进制)Mode)打开此Bitmap Font的档案时,可以看到下表数据即为上述字符在16进位(HEX)时的表示方式:

以一套BIG-5 Encoding的Bitmap Font为例,其File Size计算方式如下: 一
套Big-5字集从A140到F9FE总共有13,973个码位 (其中有13060个汉字、441个符号及472个空字),而每一个字占25 Bytes(字宽的Byte数再乘以高),所以一套字的档案大小为: 13973 (总字数) * 25 (Record size) = 349,325 Bytes

 
 
总结

透过Bitmap档案格式简单的说明,您可以发现Byte Alignment和Bit Alignment最明显的差异便是File Size可以压缩,以同样的一套BIG-5 Font的Column-Scan格式而言,Byte Alignment要391,244 Bytes而Bit Alignment只要349,325 Bytes足足减少了41,919 Byte。单看一个字可节省3Byte再乘以总字数就是整套字可节省的Size了。
 
     
     
   
     
 
文鼎科技開發股份有限公司∣地址:22046 台北縣板橋市文化路二段28530
電話:886-2-8259-8356 ∣ 傳真:886-2-8259-8351
客服專線:TEL:02-8259-8360 ∣ 客服信箱:service@arphic.com.tw