8,.OSD叠加学习之汉字在YUV的叠加

该博客介绍了如何生成GB2312字库并计算字符的区位码,通过编辑器(如VScode)将中文变量转化为区位码,然后利用区位码计算偏移量,从而实现汉字叠加。步骤包括改变字符集为GB2312,获取区位码,计算偏移量,并展示了最终实现过程。
摘要由CSDN通过智能技术生成

思路:

前篇已经熟悉了 ASCII码 字模的叠加,其实汉字的叠加与ASCII是一样的思路。不过就是 字典(字库)不同,表示的方法不同而已。相同的还是 计算偏移量,利用偏移量从 字典中 获取想要的字符。不清楚的请移步上篇

上面说到,字库与字库存储的方法是不一样的,我用的是 GB2313。所以我们得先去学习相关知识。

请移步:了解 GB2313

区别步骤:

生成 GB2312 字库:

在这里插入图片描述

将字符集类型改为 GB2312 即可。

获取区位码

我们要计算GB2312字符的偏移量,就需要 字符的区位码。这个我们利用编辑器(VScode)就可以使存储中文的变量自动转化为区位码。

点击右下方 UTF-8:
在这里插入图片描述
点击通过编码保存:
在这里插入图片描述
设定为 GB2312:
在这里插入图片描述
这样我们就可以获取单个中文的区位码了

  	char *word         = "好";
    int offset[]       = {0};
    short AreaCode     = word[0] & 0xff;
    short BitCode      = word[1] & 0xff;
    printf("AreaCode = %x,BitCode = %x\n",qm,wm);

在通过公式就可计算出 偏移量

offset[0] = (94 * (AreaCode - 0xa1) + (BitCode - 0xa1)) * 512;

得到偏移量之后的步骤就与上篇博文相一致了,这里就不过多介绍了(顶不住了…)。

最终实现图

在这里插入图片描述
在这里插入图片描述
系列结束 over~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值