BDF字体是Adobe 公司推出的一种可阅读性非常强的文本格式点阵字库文件,英文全称:Bitmap Distribution Format 。凡是使用点阵字库的平台,基本都会优先考虑或曾经使用过它。如:Adobe,Mac,IBM,XWindows,Czyborra,Palm,MTK,展讯等等。

一、文件框架

格式如下:

STARTFONT 2.1

FONT -xos4-Terminus-Medium-R-Normal--16-160-72-72-C-80-ISO10646-1

SIZE 16 72 72 [bpp]

FONTBOUNDINGBOX 8 16 0 -4

STARTPROPERTIES20

...

ENDPROPERTIES

CHARS 1354

STARTCHAR char0

...

ENDCHAR

STARTCHAR char1

...

ENDCHAR

...

ENDFONT

说明: 彩色加粗文字表示关键字。其中有 3 对配对关键字:【STARTFONT, ENDFONT】、【STARTPROPERTIES,ENDPROPERTIES 】、【STARTCHAR ,ENDCHAR】,必须成对存在。

STARTFONT 2.1

说明:字体起始标志,以及版本信息。

FONT -xos4-Terminus-Medium-R-Normal--16-160-72-72-C-80-ISO10646-1

说明:字体简介

SIZE 16 72 72 [bpp]

说明: 字体像素大小,以及横向,纵向 DPI 值, bpp,位深度,为1时,则不显示,还可以是:2,4,8。 例如: SIZE: 16 72 72 4

FONTBOUNDINGBOX 8 16 0 -4

说明:字体边界。最宽为8,最高为16, 最左为0(允许为负数), 最下为-4(即基线下方有4个像素)。前2个参数决定字体大小,后2个参数决定显示位置(原点坐标)。详见下方图示:

怎样转换成bdf文件(BDF字体文件格式详解)(1)

参考原点1

怎样转换成bdf文件(BDF字体文件格式详解)(2)

参考原点2

STARTPROPERTIES 20

说明:字体产权信息起始标志, 20. 表示条目数量。

ENDPROPERTIES

说明:字体产权信息结束标志

CHARS 1354

说明: 字符数

STARTCHAR char0

...

ENDCHAR

说明: 字符点阵相关信息。

ENDFONT

说明:字体结束标志

二、 PROPERTIES

格式如下:

STARTPROPERTIES 20

FAMILY_NAME "Terminus"

FOUNDRY "xos4"

SETWIDTH_NAME "Normal"

ADD_STYLE_NAME ""

COPYRIGHT "Copyright (C) 2019 Dimitar Toshkov Zhekov"

NOTICE "Licensed under the SIL Open Font License, Version 1.1"

WEIGHT_NAME "Medium"

SLANT "R"

PIXEL_SIZE 16

POINT_SIZE 160

RESOLUTION_X 72

RESOLUTION_Y 72

SPACING "C"

AVERAGE_WIDTH 80

CHARSET_REGISTRY "ISO10646"

CHARSET_ENCODING "1"

MIN_SPACE 8

FONT_ASCENT 12

FONT_DESCENT 4

DEFAULT_CHAR 65533

ENDPROPERTIES

说明:这里是关于字库的一些描述信息,从字面便可理解一二,主要便于更进一步了解字库。

三、 字符信息

格式如下:

STARTCHAR exclam

ENCODING 33

SWIDTH 343 0

DWIDTH 4 0

BBX 3 9 0 0

BITMAP

60

60

60

40

40

40

00

c0

c0

ENDCHAR

图示如下:

怎样转换成bdf文件(BDF字体文件格式详解)(3)

点阵信息图解

STARTCHAR exclam

说明:字符信息起始标志, 字符名字。

ENCODING 33

说明:字符编码,十进制数。

SWIDTH 343 0

说明: 可忽略

DWIDTH 4 0

说明:Device Width,第一个参数:横向走纸宽度,见上图的虚线框, 第二个参数,基本为0, 可忽略。

BBX 3 9 0 0

说明:有效像素宽,高, x偏移(可为负数), y偏移(可为负数)。

BITMAP:

说明: 点阵信息的起始标志。

60

60

60

40

40

40

00

c0

c0

说明:点阵信息,不同位深度,数据量不一。(只记录有效像素区域,也有部分不规则bdf文件,包含了白边信息)

ENDCHAR

说明:字符信息结束标志

注意:字符信息段数量,由字符数决定。

四、 叠加符号

例如:泰文 0E37

怎样转换成bdf文件(BDF字体文件格式详解)(4)

叠加符号样式

说明:

x_offset = -8,表示 x 坐标向左偏移 8 个像素;若为正数,则向右移。

y_offset = 10,表示符号参考(水平)基线上移 10个像素;若为负数,则向下移。

Device Width = 0, 表示不用调控走纸。参数只会 >= 0.

这样,就可以很容易实现字符向左(或向右)叠加。

友情提醒:

1、适应性广,可以实现任意语种,很有参考价值。guitool 工具中的 Not Fixed 格式,就是参考它而来。

2、若不考虑版权,网上可以搜索到很多这类资源 (1bpp,BDF格式点阵字库文件),不同点阵大小,等宽与非等宽都有,效果还不错。

3、支持预览编辑。软件有 BdfEditor (Win), Fontforge(Win),Xmbdfed(Linux)等。

4、可与一些常用格式快速互转。如:fon, pcf, xbf, bin 等。

参考文献:

1. 5005.BDF_Spec.pdf

2. xlfd.pdf

若是喜欢,就关注我吧!!!

,