动动手指,点击上方蓝字关注我们
点阵字介绍
今天给大家分享的是利用python实现点阵字体,可能大家对这个名词不太熟悉。给各位找了专业的解释:点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示(来源百度百科)。如下图,就是点阵字体
要实现这个功能要借助点阵字库HZK16。
HZK16字库是符合GB2312标准的16×16点阵字库,HZK16字库里的16×16汉字一共需要256个点来显示,也就是说需要32个字节(一个字节占8位)才能达到显示一个普通汉字的目的。所以我们只要去HZK16字库中获取点阵信息,拿到信息后根据16*16点阵每个点的数据,print出不同字符即可。
python代码实现
首先需要得到汉字的区码和位码
我们知道,一个汉字占两个字节,这两个中前一个字节为该汉字的区号,后一个字节为该字的位号。
区码:汉字的第一个字节-0xA0,因为汉字编码是从0xA0区开始的,所以文件最前面就是从0xA0区开始,要算出相对区码
位码:汉字的第二个字节-0xA0
通过区码和位码计算在点阵字库中的偏移量,基于偏移量在HZK16文件中找到对应的32个字节字模数据。
注意:在本代码中HZK16文件是和代码文件在同一目录。如需更改,记得写对路径。
解析字模数据获取点阵坐标信息
获取到的16*16点阵信息,打印到控制台
来看一下运行结果
最后,在后台回复 "点阵字" 获得本文的代码和点阵字库文件。祝大家工作顺利,日进斗金。
END
往期 精彩回顾用python画一面国旗庆祝祖国七十周年python实现微信头像加国旗 想要获得LOL英雄皮肤,Pyhon来帮你 几道简单的编程题(附答案) 提升 Python 程序性能的 7 个习惯长按关注 我就知道你“在看”