- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
ASCII点阵字库压缩算法
更新时间
目录
1,ASCII字库体积计算
2,ASCII字库的生成
3,ASCII字库图案观察
4,ASCII点阵字库空白标记法
5,[压缩编码]ASCII点阵字库空白标记法
6,[压缩编码]的压缩率
7,[解压]ASCII点阵字库空白标记法
8,[总结]ASCII点阵字库空白标记法
9,结束
附录资料
1《ASCII_324864_Font.c》
2《PCtoLCD2002》
3《ASCII_编码.cpp》
4《LCD_DIS_Font.c》
本文作者:ૡጱ电子ጱૡ
文章首发:LYQ电子/知乎
首发:电子-的个人空间_哔哩哔哩_bilibili
地址:ASCII点阵字库压缩算法_哔哩哔哩_bilibili
资料地址:
研究背景:
搞到一块分辨率240*400的LCD屏,这么大的分辨率,这么大的屏,我觉得可以显示一些
较大的字体了。之前我都玩16*8,8*6的ASCII字符,显示更大的ASCII点阵图像,原理是一样
的。
因为我用的STC8H8K单片机点屏的,ROM最大是64KB,而一个64*32的ASCII点阵字库大小是
95*256=23.75KB,如果要区分加粗和不加粗,字库体积就47.5K了,占单片机ROM的74%了,确实
接受不了,还可能用其他字库呢。于是就研究起字库压缩算法了。
1,ASCII字库体积计算
!#$%()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVW[\]^_`abcdefghijklmnop
qrstuvw{|}~
这里说的ASCII字库,一般是指可以显示出来的常见字符,从空格开始到~为止,一共95个。
这里边包含了10个数字,52个大写字母和小写字母,还有一些其他符号。这些符号,我们的键盘
都是可以打出来的。
字库大小:一般常用的字库点阵,高度是宽度的2倍,一般常见的尺寸16*8,24*12,32*16,
至于字体是否加粗,无所谓了,字体宽度不变。这里说的是等宽字体,暂不研究不等宽字体。等宽
字体看起来好看一些,一个汉字的宽度是ASCII的2,汉字一般是正方形的。这个时候排列比较好
看。
字库体积计算:16*8的ASCII点阵字库,单积是16*8/8=16Byte,16*8是128点,/8的
操作是,我们是以Byte的,1Byte可以8个点。那么95个ASCII,16*8的字库所占
体积是95*16=1520Byte=1.48KB
那么我们计算一个24*12的ASCII点阵字库24*12/8*95=3420Byte=3.34KB
32*16的字库体积是16*8的四倍,是5.94KB
48*24的字库体积是13.4KB
64*32的字库体积是23.75KB
2,ASCII字库的生成
一般的点阵字库,我们都是使用软件生成的,这方面我暂时没有去研究自己制作软件,我使用
的软件是[PCtoLCD2002],据说这个软件出新版本了,这个我没研究过,就不分析了。
打开软件后,把95个ASCII码到下方,就能看到图案了生成了,点击生成字模,就能生
成字库数组了。到程序中就能用了。
当然了,有些设置是必要的,字体我一般用宋体,字体高速看情况设置,字体高度不需要设
置,勾选上等比缩放即可,这样出来的点阵图案,高度是宽度的2倍。后边有BIU,这个是设置加
粗,斜体,下划线的,点击就能选择。当前的图案是加粗的效果。
上述是一些点阵的显示设置,接下来要点击上方菜单[选项],设置输出的格式.我这里设置的
是逐行式的,这个是用于LCD彩屏的,一般LCD彩屏是逐行写入的,写入完一行,再去下一行。同
时LCD彩屏是直接操作单个像素点的。这个模式和一般的单色点阵屏有区别,一般单色点阵屏,是
8bit作的,一般要选择列行式,或者逐列式。
点击生成字模后,一般采用手动即可。到程序中,要加上数
原创力文档


文档评论(0)