柬埔寨 - 高棉语 点阵方式详解
点阵方式实现 高棉语 显示,比泰文,阿拉伯文等语言还要麻烦,它编码虽少,但是涉及多种连写组合(或合成)规则,若要做到与电脑同等效果,实属不易。编码范围:
1780-17FF #高棉语 (Khmer)
19E0-19FF#高棉语记号(KmerSymbols)
BdfEditor点阵方式模拟高棉语显示。
BdfEditor 点阵方式模拟显示高棉语
第一步: 选择字体
因为不同的字体显示效果不一,且处理方式也会不同。如下图示:
不同字体显示高棉语对比
说明: 左下(细)字体是: Daunpenh , 右上(粗)字体是: Khmer UI。
第二步: 规则处理一、连写字符(叠加)组合1. 普通连写组合
独显与连写(叠加)显示对比
说明:编码【1796,17BD】上一行为独立字符显示,下一行为连写叠加显示。
这种模式,只要字库含x_offset(x偏移为负数)信息就可以解决。
组合符点阵信息(包括x,y偏移,宽高等
2.特殊连写组合
编码:17BE,17BF,17C0,17C4,17C5,这几个符号有一定的特殊性,见如下图示:
矢量字体预览
连写效果图示:
独立与连写(组合)显示效果对比
说明:编码【1793,17BF】
多形态 - 影子符号
说明:每个连写组合符号后方分别跟有1个或2个影子符号(无对应unicode编码)
不知大家发现啥规律没有?
连写符号 = 17C1 + 影子符号
所以要解决这种连写组合方式,也简单。
1.生成各影子符号点阵信息,并自定义独立且唯一编码。
2.转码,遇到这种连写符号,先转换。
例如: 1793 + 17BF = 17C1 +1793 + 影子符号(若2个影子符号,视情况定)
3.逐个显示处理
二、 合成符
多个符号连在一起合成一个新的符号。
独立与连写(合成)显示效果对比
说明:编码【17A0, 17B6】
矢量字库预览合成符 1
矢量字库预览合成符 2
解决方法: 只要把合成符生成点阵信息,并建立合成映射关系即可。
三、 多形态
一个字符多种形态,独立 或 与其它字符组合时,形态不一。
不同编码组合方式,显示效果不一
矢量字体预览字符的多种形态
编码 uni1798 形态之一
形态差异化比较
uni1798.sub1 和 uni1798.sub2, 与不同(宽窄)符号组合,选择不同。