登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
点阵字体BDF的生成
点阵字体BDF的生成
[ 复制链接 ]
终秀敏
2025-8-8 14:57:12
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
做点阵字体的原因,是我觉得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
1056
孟茹云
2025-11-10
业界
【Agent】生成式隐式记忆 MemGen 源码解读
2
210
里豳朝
2025-11-10
业界
ORACLE解析游标生成JSON
2
594
昝梓菱
2025-11-11
业界
第5章 生成式AI项目的管理新挑战
1
995
溶绚
2025-11-19
科技
SWE-smith规模化生成软件工程训练数据
3
37
钿稳铆
2025-11-25
业界
使用 html2canvas + jsPDF 生成PDF 的简单示例(含文字下沉修复)
2
477
东新
2025-11-25
业界
人工智能:用Gemini3一分钟生成手势控制3D粒子交互系统
0
150
芮梦月
2025-11-28
安全
【GitHub每日速递 20251204】LightRAG:集多功能于一身,检索增强生成新利器!
0
616
纪晴丽
2025-12-04
科技
Nano Banana生成论文标注图片
0
39
磁呃泵
2025-12-09
安全
PRD太难写?AI生成的产品需求文档,到底能不能用?
0
700
季卓然
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
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994893
kk14977
6845357
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
714
告别“草率编程”:Vibe Engineering 如何
5
字符串匹配算法
339
监听小工具-股票监控神奇九转分钟线信号触
423
国内GEO优化技术深度测评:核心维度全景对
365
Avalonia源码解读:Grid(网格控件)
239
研究 TikTok 爆款的人,一定要懂这类下载工
958
Java Optional 完全指南:优雅处理 null 的
25
全面封禁 Cursor!又一家大厂出手了
879
记一次MySQL binlog日志导致磁盘空间占满的
779
记一次MySQL binlog日志导致磁盘空间占满的
879
小白也能看懂的RLHF-PPO:原理篇
303
小白也能看懂的RLHF-PPO:原理篇
279
2026年主流原型设计工具:Axure、墨刀功能
68
邮箱怎么群发邮件给多个人
589
27个行业创新实践一次看|HarmonyOS SDK案
143
秋的启迪
781
秋的启迪
500
不止编程!Claude Code 跨界应用指南:5 大
22
VictoriaMetrics 尝鲜
966
高频OTA时代,如何用SIL测试兼顾软件可靠性