linux扩展显示内容,关于 CJKTTY (文字终端显示东亚语言)补丁的扩充

本文详细介绍了如何解析和理解font_cjk.h文件中65280个字符的16x16点阵位图数据格式。每个字符由32个0xNN数据表示,每个NN对应8位二进制像素线,组合成16x16的字形。通过转换和绘制二进制数据,可以清晰地展示出字符形状。了解这种格式对于修改和创建点阵字体至关重要。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

font_cjk.h包含的是65536个字符的16x16点阵bitmap字形图片,顺序对应u+0000到u+ffff,前256个字符对应的数据格式和后65280个字符数据格式不太一致,这里只说后65280字符的格式:

0、在patch文件的font_cjk.h部分,能找到大量如下格式的数据:

+// xxxxx ;

+,0x00,...

第一行xxxxx为一个十进制数字,表示当前被描述字符对应的unicode点的值,第二行表示当前被描述字符字形对应的16x16点阵位图;

1、一个字符的字形数据为一个16x16点阵的bimap,表示改字的字形,使用32个形如0xNN的数据表示;

2、每个0xNN实际上是个8bits数字,例如0x14,将其转换成2进制为00010100,则对应一条1x8的像素横线 “空空空填空填空空”,即0表示该位置不需要填充颜色(如当前设置黑底白字,则不需要填充白色),1表示需要填充颜色

3、1个数据表示1x8横线,顺序的16个数据表示8x16的位图

4、32个数据中,前16个表示该字形16x16阵列的 “左半部分”(左8x16),后16个表示右半

5、举个例子,就用 “例” u+4f8b(十进制20363) 好了,找到

+// 20363

+,0x08,...,0x02

数据太长,中间省略了。依上面提到的方法,顺序转换成二进制后绘制出来(用_代表0,用#代表1),前16个字符形如:

____#___

____##_#

____#___

___#____

___#____

__##___#

_#_#___#

___#__#_

___#_#_#

___##__#

___#____

___#____

___#___#

___#___#

___#__#_

___#_#__

后16个:

_______#

####___#

#______#

#___#__#

###_#__#

__#_#__#

__#_#__#

__#_#__#

_#__#__#

_#__#__#

#___#__#

#______#

_______#

_______#

_____#_#

______#_

拼一块:

____#__________#

____##_#####___#

____#___#______#

___#____#___#__#

___#____###_#__#

__##___#__#_#__#

_#_#___#__#_#__#

___#__#___#_#__#

___#_#_#_#__#__#

___##__#_#__#__#

___#____#___#__#

___#____#______#

___#___#_______#

___#___#_______#

___#__#______#_#

___#_#________#_

远看可依稀看到 ”例“ 的字形

了解格式,修改则可行了。修改时须注意不要破坏其格式,漏写或多写数据都会影响其后的所有字符数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值