该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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个:
_______#
####___#
#______#
#___#__#
###_#__#
__#_#__#
__#_#__#
__#_#__#
_#__#__#
_#__#__#
#___#__#
#______#
_______#
_______#
_____#_#
______#_
拼一块:
____#__________#
____##_#####___#
____#___#______#
___#____#___#__#
___#____###_#__#
__##___#__#_#__#
_#_#___#__#_#__#
___#__#___#_#__#
___#_#_#_#__#__#
___##__#_#__#__#
___#____#___#__#
___#____#______#
___#___#_______#
___#___#_______#
___#__#______#_#
___#_#________#_
远看可依稀看到 ”例“ 的字形
了解格式,修改则可行了。修改时须注意不要破坏其格式,漏写或多写数据都会影响其后的所有字符数据