一种用于POS平台的阿拉伯语显示方法技术

技术编号:9538616 阅读:193 留言:0更新日期:2014-01-04 14:30
本发明专利技术公开了一种用于POS平台的阿拉伯语显示方法,包括:采用freetype库构建矢量字体库的对象,并读取字体文件,从而获取待显示字符串的阿拉伯语本地编码;将获取的本地编码转换为unicode编码;计算编码转换后的待显示字符串的总长度,然后根据计算出的总长度和屏幕的总长度确定显示位置的起始点;根据阿拉伯语连写与变形规则对编码转换后的待显示字符串进行变换处理,从而得到新字符串;提取新字符串中所有字符的位图信息,并根据确定的起始点将提取的位图信息显示在屏幕上。本发明专利技术引入了矢量字体来进行显示,具有操作简单、显示效果好、通用性强和兼容性较好的优点。本发明专利技术可广泛应用于字体显示领域。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种用于POS平台的阿拉伯语显示方法,包括:采用freetype库构建矢量字体库的对象,并读取字体文件,从而获取待显示字符串的阿拉伯语本地编码;将获取的本地编码转换为unicode编码;计算编码转换后的待显示字符串的总长度,然后根据计算出的总长度和屏幕的总长度确定显示位置的起始点;根据阿拉伯语连写与变形规则对编码转换后的待显示字符串进行变换处理,从而得到新字符串;提取新字符串中所有字符的位图信息,并根据确定的起始点将提取的位图信息显示在屏幕上。本专利技术引入了矢量字体来进行显示,具有操作简单、显示效果好、通用性强和兼容性较好的优点。本专利技术可广泛应用于字体显示领域。【专利说明】—种用于POS平台的阿拉伯语显示方法
本专利技术涉及一种字体显示方法,尤其是一种用于POS平台的阿拉伯语显示方法。
技术介绍
名词解释:POS:point of sale ; 非等宽字体:类似阿拉伯语这种每个字符的宽度不同的字体。点阵字体具有使用比较灵活、占用空间较小和显示速度较快的优点。目前金融支付领域的POS机一般采用点阵字体来做显示界面。随着行业的发展和客户的对象群体增加,对于POS平台的显示要求也越来越高,需要POS平台既能对斜体、不同大小和不同粗细的字体进行显示,也能对阿拉伯语这类非等宽字体进行显示。点阵字体存储的仅是匹配大小的位图信息,并不能自由变换大小、粗细或倾斜度,否则会引起字形的失真。因此,当需要有不同大小、粗细或倾斜度的字体显示的时候,POS平台中需要全部修改其中的字体显示模块或需要对应的字库支持,操作起来十分复杂且显示效果较差。另外,点阵字体无法为单个字体设置单独的大小,只能显示等宽字体而无法显示阿拉伯语这类非等宽字体,通用性不强且兼容性较差。
技术实现思路
为了解决上述技术问 题,本专利技术的目的是:提供一种操作简单、显示效果好、通用性强和兼容性好用于POS平台的阿拉伯语显示方法。本专利技术解决其技术问题所采用的技术方案是:一种用于POS平台的阿拉伯语显示方法,包括: A、采用freetype库构建矢量字体库的对象,并读取字体文件,从而获取待显示字符串的阿拉伯语本地编码; B、将获取的本地编码转换为Unicode编码; C、计算编码转换后的待显示字符串的总长度,然后根据计算出的总长度和屏幕的总长度确定显示位置的起始点; D、根据阿拉伯语连写与变形规则对编码转换后的待显示字符串进行变换处理,从而得到新字符串; E、提取新字符串中所有字符的位图信息,并根据确定的起始点将提取的位图信息显示在屏幕上。进一步,所述步骤D,其包括:D1、对编码转换后的待显示字符串进行连写变换处理,从而得到连写变换后的字符串; D2、对连写变换后的字符串进行变形处理,从而得到新字符串。进一步,所述步骤Dl,其包括:Dll、判断编码转换后的待显示字符串中第i个字符是否同时满足其前面一个字符存在且后面一个字符属于连写字符集,若是,则执行步骤D12,反之,则转至步骤D13,所述i为自2开始的自然数,且2≤i≤length,所述length为计算出的总长度; D12、判断第i个字符的前面一个字符是否属于变形前置字符集,若是,则将第i个字符变为连写字符集I中的对应字符,反之,则将第i个字符变为连写字符集O中的对应字符;D13、判断i是否满足i ( length,若是,则执行i++,然后返回步骤Dll,反之,则转至步骤D2。进一步,所述步骤D2,其包括: D21、判断连写变换后的字符串中第m个字符的前面一个字符或后面一个字符是否属于变形字符集,若是,则执行步骤D22,反之,则转至步骤D23,所述m为自I开始的自然数,且 I < m < length ; D22、根据判断的结果将第m个字符修正为变形字符集中对应的新Unicode编码; D23、判断m是否满足111≤length,若是,则执行m++,然后返回步骤D21,反之,则转至步骤E。进一步,所述步骤E,其包括: E1、采用freetype库的API函数对新字符串中第η个字符的位图信息进行提取,所述η为自I开始的自然数,且I≤η≤length ; E2、根据确定的起始点将第η个字符的位图信息显示在屏幕的位置(xn,yn)上; E3、将显示位置的起始点向左水平移动widthn,所述widthn为第η个字符的位图宽度; Ε4、判断η是否满足n ( length,若是,则执行n++,然后返回步骤E1,反之,则结束操作,所述待显不子符串在屏眷中显不完毕。进一步,所述步骤E1,其包括: E11、判断屏幕的分辨率是否高于预设的分辨率阈值,若是,则执行步骤E12,反之,则执行步骤E13 ; E12、采用256灰阶渲染的方式或单色渲染的方式对第η个字符的位图信息进行提取;Ε13、采用改进的256灰阶渲染方式对第η个字符的位图信息进行提取,从而将第η个字符中像素点灰阶信息高于预设阈值的点取出来构造字体轮廓。进一步,所述步骤Ε2,其包括: Ε21、从提取出的第η个字符的位图信息中获取所需的度量信息,然后根据获取的度量信息对确定的起始点进行纵向调整,从而使第η个字符按基准线进行排列; Ε22、根据纵向调整后的起始点将第η个字符的位图信息显示在屏幕的位置(xn,yn)上。进一步,所述所需的度量信息为第η个字符的最上点至位图所在区域顶层的距离和基准线到区域顶层的距离。本专利技术的有益效果是:引入了能自由变换大小、粗细或倾斜度的矢量字体,并在freetype开源库的支撑下,解决了点阵字体无法正常显示阿拉伯语以及不能自由变化字体大小、粗细和倾斜度的问题,操作简单,显示效果好且通用性强,提高了 POS机的用户界面体验;同时也能扩展到其它类似阿拉伯语的非等宽字体显示,兼容性较好。【专利附图】【附图说明】下面结合附图和实施例对本专利技术作进一步说明。图1为本专利技术一种用于POS平台的阿拉伯语显示方法的步骤流程图; 图2为本专利技术步骤D的流程图; 图3为本专利技术步骤Dl的流程图; 图4为本专利技术步骤D2的流程图; 图5为本专利技术步骤E的流程图; 图6为本专利技术步骤El的流程图; 图7为本专利技术步骤E2的流程图; 图8为本专利技术阿拉伯语连写与变形规则的算法流程图。【具体实施方式】参照图1,一种用于POS平台的阿拉伯语显示方法,包括: A、采用freetype库构建矢量字体库的对象,并读取字体文件,从而获取待显示字符串的阿拉伯语本地编码; B、将获取的本地编码转换为Unicode编码; C、计算编码转换后的待显示字符串的总长度,然后根据计算出的总长度和屏幕的总长度确定显示位置的起始点; D、根据阿拉伯语连写与变形规则对编码转换后的待显示字符串进行变换处理,从而得到新字符串; E、提取新字符串中所有字符的位图信息,并根据确定的起始点将提取的位图信息显示在屏幕上。其中,采用freetype库构建矢量字体库的对象是指,采用freetype库中支持阿拉伯文的开源字库tahoma.ttf来构造字体库对象。构建好字体库对象后,读取字体文件时就可以根据字体文件中的索引信息从字体库中查找到待显示字符串的阿拉伯语本地编码。由于freetype库提取字符位图信息及后面的变形换处理本文档来自技高网
...

【技术保护点】
一种用于POS平台的阿拉伯语显示方法,其特征在于,包括:A、采用freetype库构建矢量字体库的对象,并读取字体文件,从而获取待显示字符串的阿拉伯语本地编码;B、将获取的本地编码转换为unicode编码;C、计算编码转换后的待显示字符串的总长度,然后根据计算出的总长度和屏幕的总长度确定显示位置的起始点;?D、根据阿拉伯语连写与变形规则对编码转换后的待显示字符串进行变换处理,从而得到新字符串;E、提取新字符串中所有字符的位图信息,并根据确定的起始点将提取的位图信息显示在屏幕上。

【技术特征摘要】

【专利技术属性】
技术研发人员:董凯
申请(专利权)人:深圳市新国都技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1