python庆祝生日快乐的代码_python实现点阵字体

8b690a820e998321d7400ad70134089d.gif

动动手指,点击上方蓝字关注我们

点阵字介绍

今天给大家分享的是利用python实现点阵字体,可能大家对这个名词不太熟悉。给各位找了专业的解释:点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示(来源百度百科)。如下图,就是点阵字体

de0c96881b877dfcfc115c2868cc166a.png

要实现这个功能要借助点阵字库HZK16。

HZK16字库是符合GB2312标准的16×16点阵字库,HZK16字库里的16×16汉字一共需要256个点来显示,也就是说需要32个字节(一个字节占8位)才能达到显示一个普通汉字的目的。所以我们只要去HZK16字库中获取点阵信息,拿到信息后根据16*16点阵每个点的数据,print出不同字符即可。

python代码实现

首先需要得到汉字的区码和位码

我们知道,一个汉字占两个字节,这两个中前一个字节为该汉字的区号,后一个字节为该字的位号。

  • 区码:汉字的第一个字节-0xA0,因为汉字编码是从0xA0区开始的,所以文件最前面就是从0xA0区开始,要算出相对区码

  • 位码:汉字的第二个字节-0xA0

aee065eb37f44ff927caa38aef2cce7c.png

通过区码和位码计算在点阵字库中的偏移量,基于偏移量在HZK16文件中找到对应的32个字节字模数据。

注意:在本代码中HZK16文件是和代码文件在同一目录。如需更改,记得写对路径。

d519ef6f3409c81f4f7ef5c175b1f003.png

解析字模数据获取点阵坐标信息

4cd868899336a3ac80fffbc78ed5a595.png

获取到的16*16点阵信息,打印到控制台

f54065a8f521e971403e79996072563a.png

来看一下运行结果

最后,在后台回复 "点阵字" 获得本文的代码和点阵字库文件。祝大家工作顺利,日进斗金。

END

往期 精彩回顾用python画一面国旗庆祝祖国七十周年python实现微信头像加国旗 想要获得LOL英雄皮肤,Pyhon来帮你 几道简单的编程题(附答案) 提升 Python 程序性能的 7 个习惯长按关注 458130a1af20705fc0692d0c3e34605f.png我就知道你“在看” 1b047f03d7448cbb7de780f8a493fa28.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值