裁剪的uincoide的点阵字库结构设计

嵌入式系统中,为了节省空间,通常需要裁剪Unicode点阵字库。文章介绍了Unicode点阵字库的结构设计,包括头结构和页的分布,以及如何根据项目需求裁剪字库,以适应特定国家的语言支持。
摘要由CSDN通过智能技术生成

概述及理由

嵌入式中我们经常用到点屏的操作,这就设计到点阵的问题,可以使用ANSI编码,进行点屏,现在讲点unicode的点阵

  1. 全世界的unicode的编码是唯一的。
  2. 每个unicode编码占用两个字节
  3. 每一个unicode码的点阵,都占用一样的大小

如果需要支持全世界语言的, 那么我们可以生成一个点阵库。这个的点阵库的体积比较大,因为包括了所有的uincode的编码。但是有一个问题来了,如果嵌入式中没有足够的空间来保存uincode的点阵库,是不是就不能进行项目的操作了? 其实一个项目使用的范围,通常是在一个国家范围内,这样我们就可以通过裁剪点阵字库,实现我们的目的

uincod点阵结构

头结构

在这里插入图片描述

typedef struct
{
   
    char    fontFormat[3];    // 字库格式
    uint8   swVersion;        // 软件版本
    
    uint8   fontSize;         // 字体大小
    uint8   charWidth;        // 字符宽度
    uint8   charHeight;       // 字符高度
    int8    offsetX;          // X 偏移
    int8    offsetY;          // Y 偏移
    uint8   bitsPerPixel;     // 每像素位数
    
    uint16  bitsSizePerChar;  // 每字符位图数据大小
    uint16  bitsOffs;         // 字符位图数据偏移
    uint16  numPages;         // 编码页数
    
} Font_FileInfo_t;  // 字库文件信息

前16个字对应的头文件信息

页<

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个专研技术的小蜜蜂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值