登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
点阵字体BDF的生成
点阵字体BDF的生成
[ 复制链接 ]
终秀敏
2025-8-8 14:57:12
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
做点阵字体的原因,是我觉得Windows下的16点阵的宋体不如原来DOS下的好看。在分析点阵字体的时候,就萌生了要把Windows下的TTF字体转成点阵字体的想法。
在网上查了一些资料,TTF转点阵字体,绕不开的就是描边矢量化。这个倒是有工具Potrace可以做。但是转成的点阵字,是按比例缩放的,在特定的字体大小下,可能会显得模糊,那么就需要针对这个大小的字体,制作BDF格式的字体。比如我们编辑一个带有点阵字体的TTF文件,会发现它有一个或多个BMP字体。
如下图:
于是,我就开始研究BDF文件格式。在网上搜索资料,得到以下的内容:
//一个BDF字体文件,首先需要确定分辨率DPI,一般我们设置为96,符合大部分显示器的分辨率
STARTFONT 2.1 //BDF版本号
COMMENT 该字体来自于宋体 //注释
FONT Song //字体名
SIZE 12 96 96 //字体大小,格式SIZE <磅数> <X分辨率> <Y分辨率>
//磅数=像素*72/DPI,16像素点阵,磅数就是12
FONTBOUNDINGBOX 16 16 0 0 //字体外围大小,<宽度> <高度> <X偏移量> <Y偏移量>
STARTPROPERTIES 12 //这里开始属性定义,数字代表有多少条属性
COPYRIGHT 版权所有 (c) 2025 www.51xiazai.com //版权定义
FOUNDRY "www.51xiazai.com" //发行商,还是版权定义
FAMILY_NAME Song //字体家族,在Windows中,同家族的字体会合并管理
SEWINDTH_NAME "Normal" //字体的水平宽度,也就是字符的相对间距
//例如 "Normal"(正常)、"Condensed"(紧缩)、"Expanded"(扩展)等。
//这个属性对于等宽字体(Monospace)和可变宽度字体(Proportional)的分类很有用
AVERAGE_WIDTH 16 //字体的平均宽度
PIXEL_SIZE 16 //字体的平均高度
RESOLUTION_X 96 //X分辨率
RESOLUTION_Y 96 //Y分辨率
CHARSET_REGISTRY "gb2312" //字符集 CHARSET_REGISTRY 通常会和 CHARSET_ENCODING 一起出现
CHARSET_ENCODING "O" //CHARSET_ENCODING 指定了注册机构下的具体编码版本
FONT_ASCENT 12 //上升线:基线到最高点的距离
FONT_DESCENT 4 //下降线:基线到最低点的距离
ENDPROPERTIES //属性定义结束
CHARS 21126 //本BDF文件一共描述的字符数量
//每一个字符的具体描述
STARTCHAR U+554A //定义要描述的字符UNICODE
ENCODING 21834 //字符的编码
SWIDTH 16000 0 //字符的可伸缩宽度,这个值通常为DWIDTH值的1000倍
DWIDTH 16 0 //字符宽度
BBX 16 16 0 0 //单个字符的边界框 BBX <宽度> <高度> <X偏移量> <Y偏移量>
//字符的点阵描述
BITMAP
0000
0EFC
EA08
AA08
AAE8
AAA8
ACA8
AAA8
AAA8
AAA8
EAE8
AAA8
0C08
0808
0828
0810
ENDCHAR
复制代码
上面的点阵字符,描述的是汉字“啊”,它的点阵用二进制表示就是如下的样子:
看明白了吗?所以BDF的字体格式很简单。
上面的字体大小是16*16,正好是8的倍数,那么,如果字体的大小不是8的倍数怎么办呢?
看下面的例子:
横向扩展成8的倍数,末位补0即可。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
点阵
字体
BDF
生成
相关帖子
最强LLM生成代码也会出错?
【Agent】生成式隐式记忆 MemGen 源码解读
ORACLE解析游标生成JSON
第5章 生成式AI项目的管理新挑战
SWE-smith规模化生成软件工程训练数据
使用 html2canvas + jsPDF 生成PDF 的简单示例(含文字下沉修复)
人工智能:用Gemini3一分钟生成手势控制3D粒子交互系统
【GitHub每日速递 20251204】LightRAG:集多功能于一身,检索增强生成新利器!
Nano Banana生成论文标注图片
PRD太难写?AI生成的产品需求文档,到底能不能用?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
科技
最强LLM生成代码也会出错?
0
1048
孟茹云
2025-11-10
业界
【Agent】生成式隐式记忆 MemGen 源码解读
2
208
里豳朝
2025-11-10
业界
ORACLE解析游标生成JSON
2
593
昝梓菱
2025-11-11
业界
第5章 生成式AI项目的管理新挑战
1
990
溶绚
2025-11-19
科技
SWE-smith规模化生成软件工程训练数据
2
32
钿稳铆
2025-11-25
业界
使用 html2canvas + jsPDF 生成PDF 的简单示例(含文字下沉修复)
2
470
东新
2025-11-25
业界
人工智能:用Gemini3一分钟生成手势控制3D粒子交互系统
0
145
芮梦月
2025-11-28
安全
【GitHub每日速递 20251204】LightRAG:集多功能于一身,检索增强生成新利器!
0
613
纪晴丽
2025-12-04
科技
Nano Banana生成论文标注图片
0
23
磁呃泵
2025-12-09
安全
PRD太难写?AI生成的产品需求文档,到底能不能用?
0
685
季卓然
2025-12-11
回复
(2)
山芷兰
2025-10-15 18:58:08
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
玲液
2025-10-27 12:53:53
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
终秀敏
2025-10-27 12:53:53
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991123
4
xiangqian
638210
5
韶又彤
9999
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
631
玩转 | q群智能聊天机器人 —— MaiBot(麦
988
offline meta-RL | 近期工作速读记录
658
C#AI系列(5): C#离线实现高效OCR
192
这才是vibe coding正确的打开方式 - 手把手
543
huggingface_hub 1.0 正式版现已发布:开源
831
嵌入式系统内存魔法之分散加载
743
嵌入式系统内存魔法之分散加载
127
【Java】ThreadLocal源码解析
29
观察者模式,发布/订阅模式,与回调函数
698
用 GPT-5.2 Vibe Coding,做了一个可以“玩
935
上海专业防水补漏服务:国家一级资质,免费
355
基于深度学习的无人机视角检测系统演示与介
768
读书笔记 XILINX ug1137-Zynq UltraScale+
127
DBeaver 与 Excel JDBC 驱动(xlSql)使用说
931
【节点】[Adjustment-InvertColors节点]原
720
笔记 XILINX ug1085-Zynq UltraScale+ Devi
451
笔记 XILINX ug1085-Zynq UltraScale+ Devi
725
读书笔记 XILINX ug1085-Zynq UltraScale+
902
基于深度学习的船舶检测系统演示与介绍
442
吴恩达深度学习课程四:计算机视觉