首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【用python玩花样】python实现点阵字体

【用python玩花样】python实现点阵字体

作者头像
小草AI
发布2019-10-29 15:31:02
发布2019-10-29 15:31:02
2.7K0
举报

来源:python编程之美

点阵字介绍

今天给大家分享的是利用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点阵信息,打印到控制台

来看一下运行结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与python集中营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档