登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
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
1052
孟茹云
2025-11-10
业界
【Agent】生成式隐式记忆 MemGen 源码解读
2
210
里豳朝
2025-11-10
业界
ORACLE解析游标生成JSON
2
594
昝梓菱
2025-11-11
业界
第5章 生成式AI项目的管理新挑战
1
992
溶绚
2025-11-19
科技
SWE-smith规模化生成软件工程训练数据
3
36
钿稳铆
2025-11-25
业界
使用 html2canvas + jsPDF 生成PDF 的简单示例(含文字下沉修复)
2
476
东新
2025-11-25
业界
人工智能:用Gemini3一分钟生成手势控制3D粒子交互系统
0
149
芮梦月
2025-11-28
安全
【GitHub每日速递 20251204】LightRAG:集多功能于一身,检索增强生成新利器!
0
616
纪晴丽
2025-12-04
科技
Nano Banana生成论文标注图片
0
33
磁呃泵
2025-12-09
安全
PRD太难写?AI生成的产品需求文档,到底能不能用?
0
697
季卓然
2025-12-11
回复
(2)
山芷兰
2025-10-15 18:58:08
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
玲液
2025-10-27 12:53:53
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
终秀敏
2025-10-27 12:53:53
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845357
3934307807
991123
4
xiangqian
638210
5
韶又彤
9998
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
311
《ESP32-S3使用指南—IDF版 V1.6》第五十五
941
纯前端调用大模型真的安全吗?我踩过的坑比
895
【分析式AI】-带你秒弄懂决策树与随机森林
97
DBLens 的数据安全、登录方式与离线使用说
71
国内开发者合规订阅 Claude Code 的 3 条最
153
Perforce QAC 2025.3 新版上线 | 速度与深
475
防止跨站脚本攻击(XSS)(完整版HTTP安全
352
Wayland下RDP服务器的搭建
887
Flink学习笔记:状态后端
532
csq-蓝桥杯python-基础语法2-列表与循环语
512
C#+VisionMaster 学习笔记(目录)-目录
586
ROS2核心概念之参数
88
【Agent】MemOS 源码笔记---(5)---记忆分类
129
.NET周刊【11月第4期 2025-11-23】
191
Oracle回滚与撤销(Undo)技术:从理论到实
223
吴恩达深度学习课程四:计算机视觉 第二周
854
jetson nano的ssh远程登录连接
638
Categraf 监控采集器常见问题汇总
825
11月和12月求职总结
950
2026年成都品牌主,如何选择AI优化搜索(AI