首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

嵌入式的汉字原来是这样显示的?

点阵上显示汉字,无非就是LED更多了。 因此,要在LCD上显示字符,需要先知道如何描绘字符的信息,按照取模方式,将这写信息还原到LCD上,就能描绘出字符。 二、点阵字库 那什么是点阵字库呢?...上面说的“德”字的描绘信息数组就是点阵字库。 这个德字描绘出的效果,就是点阵字体。描绘信息保存的形式,就是点阵字库点阵字库有多种形式: 1、直接将信息用数组保存到代码中。...这种方式比较难找,在github上可以找到一些外文的点阵字库汉字的没找到。 从DOS系统获取汉字点阵这种点阵我用过的有HZ1616,HZ1212。这种字体的版权不是很清楚属于谁。...用点阵生成工具批量生成 比如易木雨软件工作室做的《字库制作软件.rar》,可以批量将矢量字库转为点阵字库。 从开源模块中找外文点阵 比如tslib触摸库中就含有英文点阵 买。...有一个叫高通的公司,卖点阵字库芯片。有一个较北京中易的公司,有一套很好的点阵字库。这套点阵字库由于性能好,流传广,工作经验丰富的工程师一般都接触过;不过大部分公司可能都没有获得授权。

1.2K10

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

如下图,就是点阵字体 ? 要实现这个功能要借助点阵字库HZK16。...HZK16字库是符合GB2312标准的16×16点阵字库,HZK16字库里的16×16汉字一共需要256个点来显示,也就是说需要32个字节(一个字节占8位)才能达到显示一个普通汉字的目的。...所以我们只要去HZK16字库中获取点阵信息,拿到信息后根据16*16点阵每个点的数据,print出不同字符即可。...python代码实现 首先需要得到汉字的区码和位码 我们知道,一个汉字占两个字节,这两个中前一个字节为该汉字的区号,后一个字节为该字的位号。...通过区码和位码计算在点阵字库中的偏移量,基于偏移量在HZK16文件中找到对应的32个字节字模数据。 注意:在本代码中HZK16文件是和代码文件在同一目录。如需更改,记得写对路径。 ?

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用Python写一份独特的元宵节祝福

    汉字那么多,总不能每个字都去自己设计点阵吧?别担心,有现成的点阵字库可以直接使用:HZK16字库。...HZK即汉字库的首字母缩写,HZK16字库是符合GB2312标准的16×16点阵字库,支持的汉字有6763个(但可惜不支持英文和数字),每个汉字模型需要16×16一共需要256个点来显示。...这样思路就出来了:我们自己输入汉字,根据字符串中汉字字符编码,去HZK16字库中获取点阵信息,拿到信息后根据16*16点阵每个点的数据,print 出不同字符。...= eval('0x' + result[2:]) - 0xA0 offset = (94 * (area-1) + (index-1)) * 32 font_rect = None #读取HZK16汉字库文件中...如果你嫌弃这 16x16 的字库效果,也可以通过对图片进行二值化处理,以获取更精致的点阵信息来成字符图。比如这个“福”字,其点阵信息就是我对福字图片处理得到的,最终展示的效果也更美观大方: ?

    1.1K20

    Python print 玩转“点阵字”

    既然可以逐行逐个地输出字符,那么把字符组成汉字应该也不难吧?经过一番搜索与尝试,实现了通过python print来打印点阵字的小代码,请看—— ?...点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示。 我们拿Python的print来打印的话,最好是有现成可用的点阵字库,这样根据其像素信息直接转化为print的字符就可以了。...HZK16字库 HZK即汉字库的首字母缩写,HZK16字库是符合GB2312标准的16×16点阵字库,支持的汉字有6763个,每个汉字模型需要16×16一共需要256个点来显示,每个点是二进制位也就是...那么思路清晰了,根据字符串中汉字字符编码,去HZK16字库中获取点阵信息,拿到信息后根据16*16点阵每个点的数据,print出不同字符。...最终成果 用户自定义输入汉字或短语,运行代码用自定义的符号来展示点阵字: 人生苦短篇 表白篇 祝福篇

    2K20

    字库芯片GT20L16S1Y使用记录

    1、芯片基本信息 16x16点阵汉字库芯片; 支持GB2312国标简体汉字(含有国家信标委合法授权)、ASCII字符; 排列格式为竖置横排; SPI 串行总线接口; 通过字符内码计算字库在芯片中的地址...5、 点阵排列格式(竖置横排) 每个汉字在芯片中是以汉字点阵字模的形式存储的,每个点用一个二进制位表示,存 1 的点, 当显示时可以在屏幕上显示亮点,存 0的点,则在屏幕上不显示。...这样把点阵信息用来直接在显示器上按上述规则显示, 则将出现对应的汉字。...MSB 表示汉字内码GBCode 的高8bits。 LSB 表示汉字内码GBCode 的低8bits。 Address 表示汉字或ASCII字符点阵在芯片中的字节地址。...BaseAdd:说明点阵数据在字库芯片中的起始地址。 r_dat_bat 是读点阵数据函数。 DZ_Data是保存读出的点阵数据的数组。

    1.2K30

    Linux应用开发【第一章】Framebuffer应用开发

    1.4.2 在LCD上显示汉字 ​ 与显示英文字母有点不同,因为汉字点阵我们是需要通过汉字库提取出来,并没有直接提供点阵数组,因此我们程序开头需要打开汉字库文件(HZK16),然后再找到相应的位置,...提取出汉字点阵,最后再按显示英文字母一样显示它,不过这个汉字是16*16的。...① 打开汉字库文件 程序文件:show_font.c 4760 fd_hzk16 = open("HZK16", O_RDONLY); ② 获取汉字库文件的属性,存在hzk_stat结构体变量中 程序文件...,方便 后续计算汉字点阵偏移位置用。...④使用汉字库,调出点阵显示汉字 ​ HZK16 字库是符合GB2312标准的16×16点阵字库HZK16的编码,每个字需要32个字节的点阵来表示,例如我们将要显示的‘中’字,编码是D6D0,难道就是2个字节表示吗

    1.7K60

    【STM32H7教程】第53章 STM32H7的LTDC应用之汉字字库和全字库制作

    mod=viewthread&tid=86980 第53章       STM32H7的LTDC应用之汉字字库和全字库制作 本章教程为大家讲解汉字字库和全字库的制作方式,实际项目中用到的地方比较多。...本章节为大家讲解的小字库和全字库方法,简单易用,是直接以C文件格式存储到内部Flash的。支持12点阵,16点阵,24点阵和32点阵的ASCII以及GB2312编码汉字显示。...hz.c文件的内容如下: /* FLASH中内嵌小字库,只包括本程序用到的汉字点阵 每行点阵数据,头2字节是汉子的内码,后面是16点阵汉子的字模数据。...hz.c文件的内容如下: /* FLASH中内嵌小字库,只包括本程序用到的汉字点阵 每行点阵数据,头2字节是汉子的内码,后面是16点阵汉子的字模数据。...: #define USE_SMALL_FONT     /*这个宏只在bsp_tft+lcd.c中使用 */ 至此就完成了全字库汉字添加,用户就可以使用16点阵汉字了。

    1.1K20

    刨根究底字符编码之六——简体汉字编码中区位码、国标码、内码、外码、字形码的区别及关系

    字形码,又称为字型码、字模码、输出码,属于点阵代码的一种。 为了将汉字在显示器或打印机上输出,把汉字按图形符号设计成点阵图,就得到了相应的点阵代码(字形码)。...显示一个汉字一般采用16×16点阵或24×24点阵或48×48点阵。已知汉字点阵的大小,可以计算出存储一个汉字所需占用的字节空间。...×16点阵表示一个汉字,字形码需用32字节。...为了将汉字的字形显示输出或打印输出,汉字信息处理系统还需要配有汉字字形库,也称字模库,简称字库,它集中了汉字的字形信息。 字库按输出方式可分为显示字库和打印字库。...用于显示输出的字库叫显示字库,工作时需调入内存。用于打印输出的字库叫打印字库,工作时无需调入内存。 字库按存储方式也可分为软字库和硬字库。软字库以文件的形式存放在硬盘上,现多用这种方式。

    2.5K10

    【第3版emWin教程】第31章 emWin6.x的全字库的实现(GB2312编码,SPI Flash方案)

    31.3 GB2312编码全字库说明 本章节配套例子使用的字库是从字库芯片提取出来的,下面是点阵字库相关信息,仅列出了要用到的点阵字符: 了解了点阵字体的相关信息后,剩下就是寻址算法了。...汉字点阵汉字库中的地址计算: 汉字库种类繁多,但都是按照区位的顺序排列的。前一个字节为该汉字的区号,后一个字节为该字的位号,位号是该字在该区中的位置。...下面对这8种点阵依次做下说明: 汉字点阵GB2312编码字库地址计算 GBCode表示汉字内码。 MSB 表示汉字内码GBCode的高8bits, LSB 表示汉字内码GBCode的低8bits。...Address 表示汉字或ASCII字符点阵在芯片中的字节地址。 BaseAdd:说明点阵数据在字库中的起始地址。...16点阵汉字

    64210

    Python读取微信好友头像,拼成祝福语九宫格

    代码中汉字文本可以自定义输入,头像图片也可以是备好的其他图片。怎么样,比之前的点阵字是不是更酷了些? 思路 基本思路很直接:读取微信好友头像,按照汉字点阵信息进行拼接,生成完整的单字图片。...获取汉字点阵信息也是按照之前的思路:利用汉字库HZK16文件来实现。拿到点阵信息后,将背景图片当做16*16点阵,用头像图片和空白来替代点阵中的点。...汉字点阵 点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。...点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示 HZK16字库是符合GB2312标准的16×16点阵字库,支持的汉字有6763个,每个汉字模型需要16×16一共需要256个点来显示。...,将colorlist[index]改为'#FFFFFF' canvas = Image.new('RGB', (3200, 3200), colorlist[index]) # 新建一块画布 根据汉字点阵信息

    1.5K40

    python0111_字型码_字符字型编码_点阵字库_ascii演化

    编码进化 回忆上次内容 上次回顾了 早期的英文字符点阵 最小的 3*5 通用的 5*7 点阵字库逐渐规范化 ​ 添加图片注释,不超过 140 字(可选) 这些点阵字符的字型 究竟是如何被存储的呢...140 字(可选) ascii 的字母序号 是连续的 做字符和字符串比较的时候 就非常 直接和容易 判断 字符是否是字母 也很容易 字型编码 这就是 ascii字符 7 x 5 的 点阵字型...128个字符 ​ 添加图片注释,不超过 140 字(可选) 色彩审美 c和unix时代的 电传打字机ASR33 逐渐落幕 ​ 添加图片注释,不超过 140 字(可选) 黑底绿字的 无衬线点阵风格...对字体审美 也有影响 字体审美 无衬线字体 ​ 添加图片注释,不超过 140 字(可选) 无衬线风格的出现 是由于 点阵字库技术所限 但却成为了潮流所向 衬线审美 ​ 添加图片注释...字(可选) 字体进化 从印刷时代的 有衬线字体 到显示器时代的 无衬线字体 ​ 添加图片注释,不超过 140 字(可选) 总结 这次回顾了 字型编码的进化过程 从 7-seg 到 点阵字库

    55600

    STM32项目设计:基于stm32f4的智能门锁(附项目视频全套教程、源码资料)

    详细连接方法参考指纹模块资料 (3)解锁后就可以进行设置密码和录入卡片等操作 移植汉字库:(如果没有SD卡接口可以自己汉字取模显示) (1)准备一个sd卡,一个读卡器,用来存储汉字库,显示到...2、汉字库 1)汉字库文件在正点原子的开发板资料->“SD卡根目录文件”中,可以到正点原子官网论坛下载 2)汉字库有两类文件,.FON与.BIN文件,.FON代表汉字库点阵文件,.BIN表示的是编码表...有兴趣可以百度一下查看GBK编码表: 2、汉字库的存储位置 2)汉字与字符不同的是,汉字有1万多个,ASCII码字符却只有100多个,并且汉字的显示明显比字符的点阵复杂程度高,比如说字体是12的字符占用点阵是...字体是12 的汉字占用12×12的点阵,每个汉字需要12×12/8=18个字节存储空间,这还是最小字体,大的字体所需要的存储空间只会成倍增加 3)一般12号字体的汉字库需要500K字节、16号字体700K...(二)把汉字库里的点阵数据读取出来显示到MCU屏 1、数据编码格式的问题 1)有关显示汉字就必然会涉及编码格式的问题,不同的编码格式对应的汉字编码是不同的,比如UTF-8编码的文件用GB2312编码打开就会乱码

    2.6K20

    STM32项目设计:基于STM32F4的电子阅读器制作教程

    (具体代码参考正点原子“汉字显示实验”) 1、汉字的显示原理 1)学习过屏幕驱动的应该都知道,屏幕的显示无非就是在屏幕上打相应颜色的点,比如要显示一个字符 ‘A’ 那么我只需要知道 ‘A’ 相应的点阵数据就可以把它显示出来...2、汉字库的存储 2)但是汉字与字符不同的是,汉字有1万多个,字符却只有100多个,并且汉字的显示明显比字符的点阵复杂程度高,比如说字体是12的字符占用点阵是12×6,每个字符需要12×6/8=9个字节的存储空间...字体是12 的汉字占用12×12的点阵,每个汉字需要12×12/8=18个字节存储空间,这还是最小字体,大的字体所需要的存储空间只会成倍增加 3)一般12号字体的汉字库需要500K字节、16号字体700K...、24号字体1.6M、32号字体3M,这对于单片机来说数据量太大了,内部FLASH512K~1M表示压力很大 4)需要把汉字库通过SD卡再保存到外部FILASH才行,w25q128无疑是个好选择...项目: 基于QT5 Linux平台 停车场管理系统 https://blog.csdn.net/mbs520/article/details/113481824 基于QT5 Linux平台 车载系统

    1.2K10

    Python获取微信好友头像生成点阵图片

    汉字那么多,总不能每个字都去自己设计点阵吧?别担心,有现成的点阵字库可以直接使用:HZK16字库。...HZK即汉字库的首字母缩写,HZK16字库是符合GB2312标准的16×16点阵字库,支持的汉字有6763个(但可惜不支持英文和数字),每个汉字模型需要16×16一共需要256个点来显示。...这样思路就出来了:我们自己输入汉字,根据字符串中汉字字符编码,去HZK16字库中获取点阵信息,拿到信息后根据16*16点阵每个点的数据,print 出不同字符。...#将字转化为汉字库点阵数据 outlist = char2bit(inpt) print(outlist) #获取当前文件夹路径 workspace = os.getcwd...#将字转化为汉字库点阵数据 outlist = char2bit(inpt) #获取当前文件夹路径 workspace = os.getcwd() #用于拼接的图片所在文件夹名称

    1.6K40

    stm32f411中文手册(基于stm32f407)

    详细连接方法参考指纹模块资料 (3)解锁后就可以进行设置密码和录入卡片等操作 移植汉字库:(如果没有SD卡接口可以自己汉字取模显示) (1)准备一个sd卡,一个读卡器,用来存储汉字库,显示到...2、汉字库 1)汉字库文件在正点原子的开发板资料->“SD卡根目录文件”中,可以到正点原子官网论坛下载 2)汉字库有两类文件,.FON与.BIN文件,.FON代表汉字库点阵文件,.BIN表示的是编码表...有兴趣可以百度一下查看GBK编码表: 2、汉字库的存储位置 2)汉字与字符不同的是,汉字有1万多个,ASCII码字符却只有100多个,并且汉字的显示明显比字符的点阵复杂程度高,比如说字体是12的字符占用点阵是...字体是12 的汉字占用12×12的点阵,每个汉字需要12×12/8=18个字节存储空间,这还是最小字体,大的字体所需要的存储空间只会成倍增加 3)一般12号字体的汉字库需要500K字节、16号字体700K...(二)把汉字库里的点阵数据读取出来显示到MCU屏 1、数据编码格式的问题 1)有关显示汉字就必然会涉及编码格式的问题,不同的编码格式对应的汉字编码是不同的,比如UTF-8编码的文件用GB2312编码打开就会乱码

    1.6K10

    编码-2

    最近在socket中遇到了一个偶现bug,那就是与websocket建立连接后,进行数据传输后,在linux平台的终端下用socket_read()读取出来后,再用echo 打印出来的就是乱码。...第一个问题,汉字这个汉字是如何显示到屏幕上的,解释器又是如何处理这个汉字的,才使得最后解析出来的是一个点阵获取码。...首先无论是怎样的方式输出的汉字(复制粘贴也好,直接用输入法也好),机器最终都是以点阵获取码(就是一段特殊的16进制数字)的形式去调用所拥有的点阵库,点阵库中的每一个汉字有他自己的特殊的点阵方式。...当然这里的是点阵字库而不是矢量字库。 第二个问题是如果说python2中默认的编码方式是ascii,那么非英文字符按理来说是不能编码的 呀(因为ascii中只有英文字符)。...其实这个说法本身是没有错的,而非英文字符还是要显示的,这个时候python就对这些非英文字符进行了不规范的处理,它会使用sys.stdout.encoding所显示的编码方案对当前显示的汉字进行编码,然后将这个汉字编码后的存储码输出而来

    51610

    集五福,我用 Python

    点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示。 汉字那么多,总不能每个字都去自己设计点阵吧?别担心,有现成的点阵字库可以直接使用:HZK16字库。...HZK即汉字库的首字母缩写,HZK16字库是符合GB2312标准的16×16点阵字库,支持的汉字有6763个(但可惜不支持英文和数字),每个汉字模型需要16×16一共需要256个点来显示。...这样思路就出来了:我们自己输入汉字,根据字符串中汉字字符编码,去HZK16字库中获取点阵信息,拿到信息后根据16*16点阵每个点的数据,print 出不同字符。...= eval('0x' + result[2:]) - 0xA0 offset = (94 * (area-1) + (index-1)) * 32 font_rect = None #读取HZK16汉字库文件中...如果你嫌弃这 16x16 的字库效果,也可以通过对图片进行二值化处理,以获取更精致的点阵信息来成字符图。

    95620

    记一个OLED编程中文显示函数的坑(留意变量数据类型的范围)

    { x=x0; y++; break; } } } } } continue; //查找到对应点阵字库立即退出...,防止多个汉字重复取模带来影响 } } 这个函数其实就是从软件生成的字模表里将对应汉字字库找出来,所谓的字模表是由一个定义好的结构体组成,结构体中有两个分量,第一个是要显示的汉字,第二个是该汉字字库...,该函数就是将对应汉字字库数据一个字节一个字节取出来然后发送到LCD显示屏上实现刷屏,由于加上了颜色分量,所以我们看到直观的就是以某个颜色分量体现的字体显示,12*12的字模表的数据结构定义如下: typedef...struct { unsigned char Index[2]; //汉字内码索引 unsigned char Msk[24]; // 点阵码数据 }typFNT_GB12; 这个点阵码数据又是怎么生成的呢...{ x=x0; y++; break; } } } } } continue; //查找到对应点阵字库立即退出

    1.5K31
    领券