通过矢量字库制作点阵字库
1、字库导出步骤
涉及软件:FontEditor 1.3.3
FontEditor 为一款功能强大的字体编辑和字体格式转换工具,支持制作 32*32 的全字库。能将 TTF,OTF 矢量字库转换为 BDF 字符,可以很方便的将Windows 已经安装到系统的矢量字库转换为 BDF 字库,并能将 TTF,OTF 文件直接转换成 BDF 格式,并支持 BDF,FNT,FNB 文件格式的互转换,随心所欲将 windows字体应用于各种嵌入式系统中。并支持将 GB2312,BIG5,GBK 转换为 UCS2,UTF8,并支持 UCS2,UTF8 编码的互转换。
导出步骤:
a:导入 windows 字体,选择字体大小以及字形。
b:T 出没用的字符
c:选中需要保存的字符保存,可以直接保存为bdf 或者导出位图文件(每个字符的 bmp 图,用于生成 bdf)。
步骤如下图所示:
2、字符修改
涉及软件:MCT6.0、FontEditor 1.3.3
a、用 MCT6.0 打开生成好的 bdf 文件,对要求不符的字库进行修改。
b、选择 tools->font tools->font viewer 打开:
c、单击 open bdf file ,选择自己要使用的字库资源,这时候可以看到字库里包含的所有元素。
d、点击 font edit,Edit UCS2,输入需要修改的字符的unicode 码,如下图所示:
其中,几个参数需要注意。第一是 DWIDTH 的值,此值的意思是下一个字符相对此字符的距离,举个例子,若 dwidth 是 10,字符宽度为 10,则下一个字符是紧挨着这个字符。一般 DWIDTH 的值要小于等于字符本身的宽度。第二个是 BBX,BBX 中的前 2 个参数的意思分别为字符宽高,此 2 个值要与 FONTBOUNDINGBOX 的前 2 个值进行区别,FONTBOUNDINGBOX 的前 2 个值是字库中字符的最大宽高。这几个值修改好之后,对左边框框内的字符进行重新绘制,绘制完后保存。注:修改字符不建议使用 fonteditor 软件,保存时会自动修改字符部分参数。
3、调整基准线
如上图所示:一般的字库中的字符都有一条基准线,有了这条基准线,字符显示才能有规则,显得整齐。调整方法如下:
方法一:可以直接修改 bdf 内 BITMAP 下数组:
方法二:用 fontedit 打开字符,直接上移下移调整
4、点阵字库,如何检查BDF 文件的规范性
可从以下几个方面来查看该字库文件是否有错误,bdf 文件的规范与否会直接影响字符的显示。
a 检查字符是否等高,目前mct 只支持等高的情况。查看每一个字符的BBX 第二个参数,若不相等则说明该字库不符合规范,建议更换;(目前遇到的问题主要是客户用的点阵字体是用矢量字体转换而来的,因此打开bdf 文件后很清晰地看到字符的高度不一致,这样显示多会出现乱码。)
b 查看sCustFontData 数组中第五个参数若为0 表示非等宽,若为1 表示等宽。若为等宽情况则每一个字符BBX 中的一个参数即字符宽度都应该相同;
c 检查sCustFontData 数组中信息是否正确:
如sCustFontData Pluto_Small = {
12, 12, 7, 2, 0, 14, 500,
(U8*)UH9x9_4p_Width,
(U8*)UH9x9_4p_Width, (U32*)UH9x9_4p_Offset,(U8*)UH9x9_4p_Data,
(U32*)UH9x9_4p_RangeOffset,
„„.}
此例出现的现象就是字符显示间隔较大,长宽均为12,与宽度数组、偏移量数组中9*9 的不符,第六个参数是该字符的字节数,数值上应等于(长×宽)/8.
d 若添加字库后字符间距很大,除了考虑以上几个方面外,还应查看bdf 文件中FONTBOUNDINGBOX第三个参数,应与BBX 第三个相近或相同,若相差太大,MCT 处理时会根据FONTBOUNDINGBOX 的大小进行填充,这样也会出现字符间距很大的现象。
e 若为印度语系,如泰古拉语、孟加拉语,需检查bdf文件中参数DWIDTH,该参数表示字符的显示宽度,应小于等于字符本身的宽度,否则不能正确显示出连字的效果。
通过矢量字库制作点阵字库相关推荐
- java中点阵字库的解析
最近研究点阵字库的展示,搜到很多东西,而且大多都是C语言做的,作为一个Android开发的码农,整理了一篇java版的,一方面自己记录,一方面帮助有需要的人... 点阵字,顾名思义,就是用点组成一个个 ...
- Python 用点阵字库描绘出国庆祝福语:祝福伟大祖国,更加繁荣昌盛 我爱你,中国
目录 ❤️一段老代码 ❤️点阵字库原理 ❤️改写C代码 ❤️改进python代码 在给网友答题时突然间想到的,要把点阵字库拿出来研究研究的.适逢国庆佳节,刚好用它来打印国庆节祝福语,以表达我对伟大祖国 ...
- 点阵字库的生产原理(转)
源:点阵字库的生产原理 所有的汉字或者英文都是下面的原理, 由左至右,每8个点占用一个字节,最后不足8个字节的占用一个字节,而且从最高位向最低位排列. 生成的字库说明:(以12×12例子) 一个汉字占 ...
- 二 unicode字库制作(智源GM813X多国语言OSD开发)
字库的制作关键是需要软件,文章最后会提供一种字库制作软件,此文将详细介绍怎么提取字库方法. 一 制作字库格式. (该图就是字库软件主页面,ENCODE 编码选择UNICODE ,size 可以选择小一 ...
- 高通针对LED应用的点阵字库解决方案 — 支持多种字号字体显示
高通led字库方案为led显示屏提供标准,专业字库.应用于各类LED屏,包括公交车显示牌,广告牌,停车场系统,排队机显示屏等等.高通字库芯片为这些提供了专业,丰富的字库,LED显示不再有错字.漏字.字 ...
- 读hzk32_点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
如何在嵌入式系统中使用大量的汉字和字符呢? DOS前辈们经过艰辛的努力,将制作好的字模放到了一个个标准的库中以免去后辈的麻烦,这就是点阵字库文件. 一般我们使用16*16的点阵宋体字库,所谓16*16 ...
- ARM实验板移植,linux点阵字库的使用
不说原理,只讲步骤.包括所有自用包以及实验中遇到问题的解决办法. 想知道HZK16原理的直接搜关键词:HZK16汉字16*16点阵字库的使用 XMware:(14条消息) 小白如何在window电脑上 ...
- 大漠插件ocr多选字库_易语言大漠插件模块制作设置字库及OcrEx识别字符串
本课视频演示的命令有:OcrEx.OcrExOne.FetchWord,经过测试OcrExOne返回值为空,在易语言中,OcrEx返回值也和大漠说明文档不同.具体看视频 511遇见大漠模块制作 大漠接 ...
- 点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
字库点阵格式定义 ASC12 ' 8x12 ASCII点阵 一个字符12Byte ASC16 ' 8x16 ASCII点阵 一个字符16Byte ASC48 '24x48 ASCII点阵 一个字 ...
最新文章
- 【LeetCode每周算法】零钱兑换
- win10任务栏透明_任务栏1秒变透明,桌面瞬间高大上,美化必备!
- HTML中Head头
- TCP相关的面试内容整理
- python删除列表一段元素_Python基础--list列表删除元素
- php开发简易论坛教程,[php] 我的微型论坛的简单教程[已完成]第3/8页
- 神奇的不拆封读信,MIT透视技术登上nature子刊
- SU命令的功能及基本用法--psmerge
- 敏捷开发与测试(面试话题之一)
- git将本地项目推送到腾讯开发者平台上的步骤
- python坐标系教程_python Shapely使用指南详解
- Python编程案例:中文金额转换并计算
- php 连接新浪云mysql_将php代码部署到新浪云测试(简单方法,包含数据库的连接)...
- 计算机感染病毒正确处理方法,【安徽新华】计算机感染了病毒解决方法
- 数字信号处理学习笔记[1] 离散信号 奇异信号 抽样定理
- 专访阿里巴巴元境王矛:打造研运一体化平台,去做开创性的事
- Android手机投屏后没有声音,乐播投屏电视没有声音怎么办_乐播投屏电视没有声音手机有声音解决办法_3DM手游...
- java游戏 麦克斯 狗,奇幻射击针对兽人BOSS麦克斯的召唤兽用法
- OLT(光线路终端)介绍
- Kylin快速入门系列(1) | Kylin的简单介绍及安装部署
热门文章
- 运维 - 第一阶段 - linux与shell编程
- windows下文件夹的备份
- New bing 添加候选方法(附加绕过每回合条数限制,无限制的BingChat,找回Sydney,prompt 预设管理器)
- 基于微信电影院购票小程序系统设计与实现 开题报告
- JAVASCRIPT之灰色按钮
- Android Studio 导入项目运行按钮灰色的完美解决方法
- 无法启动此程序因为计算机丢失d3dx9,Win7系统电脑提示“计算机中丢失d3dx9-41.dll”怎么办?...
- 因计算机丢失d3dx9-30,win10安装游戏或软件后发现d3dx9_30.dll丢失打不开怎么办
- 【真人手指动画制作软件】万彩手影大师教程 | 添加背景
- Microsoft Office Word、Excel 和 PowerPoint 2007 文件格式兼容包