点阵字库的压缩存储方法及解压方法技术

技术编号:3022596 阅读:558 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种点阵字库的压缩存储方法,包括以下步骤:步骤(1)在移动装置的内存中开辟一块动态存储区;步骤(2)把所要压缩文字的点阵字库装载到所述的动态存储区中;步骤(3)读取所述的点阵字库中第一个字的点阵信息,将这个字的点阵信息转换为矩阵形式,并存储到所述的动态存储区中;步骤(4)将矩阵进行转置变换处理,得到转置矩阵;步骤(5)记录该转置矩阵的有用行的点阵信息和有用总行数;步骤(6)依次处理剩余所有字;步骤(7)释放开辟的动态存储区,压缩处理完成。本发明专利技术是一种能够节省内存区域耗费,提高系统性能的无损压缩方式。

【技术实现步骤摘要】

本专利技术涉及点阵字库的压縮存储方法,特别是一种在移动装置中使用 的。
技术介绍
目前阶段移动装置所用到的点阵字库都是在固定区域内将某种字 体中的字逐个描绘,用点阵的方式记录每个字的写法信息。这个考虑到中文字的方块特征,通常将固定区域设置为NxN的方块区域,通过二进 制编码方式表达字形,随后逐行表达每一个点代表字符色或背景色。如 二进制编码为1,则该位对应该字符当前像素点上为字符色,反之,如 果该位为0,则该位对应该字符当前像素点上为背景色。依此方法,完 成对当前行N个像素点的绘制。再循环处理,逐行完成目标字符N行的 数据表达,也完成了当前字符加绘制。这种存储方式对于等宽的中文字 体来说是没有问题的,字形信息能够充分通过点阵表达。但是外文字形 大多宽窄各异,且数目繁多,如阿拉伯文一种字体有600多个字,越南 文一种字体有700多字,因此如果每个字都用这么大的方块点阵区域存 储,就很浪费存储空间了。请参阅图l现有技术实施例的待压縮符号'i'的点阵及其字节存 储示意图。图l是符号i的点阵信息,以及i在计算机或移动装置中的 存储方式。按照常规,取16x16的点阵表示此符号。宽高位数为16x16。在计算机或移动装置中,对于点阵信息的记录是以字节为单位的, 每8位编码由一个字节表示。如图1所示,如果二进制编码为1,则该位对应该字符当前像素点上为字符色,反之,如果该位为0,则该位对 应该字符当前像素点上为背景色。依此方法,完成对当前行N个像素点 的绘制。再循环处理,逐行完成目标字符N行的数据表达,也完成了当 前字符的绘制。如图l,字符'i'的字节存储数据为- (OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,Ox01,OxO(^ OxOO,OxOO,OxOO,OxOO, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00,0x01,0x00, 0x01,0x00,0x01,0x00, Ox01,OxOO,OxOO,OxOO,OxOO,OxOO;>,每个字节为一个十六进制数,每个十六进制数代表八位二进制 数,而其中每个二进制数表示像素点的内容为字符色或背景色,因此点阵'r便通过这32个字节完整的表达了出来。可以看出,用这种方式存储外文字时,会有多余的部分用o填充,有效信息列,即字的实际宽度,有时会远小于储存该字的点阵宽度,尤 其当需要存储庞大数量的字体时,会造成存储区资源的浪费。
技术实现思路
为克服上述己有技术的不足,本专利技术要解决的技术问题是提供一 种点阵字库的压縮存储方法及解压方法,利用对点阵字库的转置编码方 式将点阵字库压縮存储,节省了内存区域耗费。 为解决上述技术问题,本专利技术的技术方案是-一种点阵字库的压縮存储方法,包括以下步骤步骤(1)在移动装置的内存中开辟一块动态存储区,用于装载所要压縮文字的点阵字库;步骤(2)把移动装置的静态存储器中所要压縮文字的点阵字库装载到所 述的动态存储区中;步骤(3)读取所述的点阵字库中第一个字的点阵信息,将这个字的点阵信息转换为矩阵形式,并存储到所述的动态存储区中;步骤(4)将步骤3中所述的矩阵进行转置变换处理,得到转置矩阵,并存储到所述的动态存储区中;步骤(5)以行为单位扫描该字的转置矩阵,记录该转置矩阵的有用行的点阵信息和有用总行数,并存储到所述的静态存储器中;步骤(6)依次将所要压縮文字的点阵字库中剩余所有字按照步骤3至步骤5的顺序,记录每个字的有用行点阵信息和每个字的有用行数,分别存储到所述的静态存储器中,所记录的行点阵信息数组便是压縮后的点阵字库;步骤(7)释放开辟的动态存储区,压縮处理完成。所述的动态存储区的大小由所要压縮文字的点阵字库生成时的点阵 字区域的大小决定。步骤3中根据所要压縮文字的宽高位信息读取所述点阵字库中字的 点阵信息。步骤3中所述的点阵信息转换为矩阵的规则为矩阵元素的行列坐标 与点阵字库中描绘字的像素色标识坐标一致。步骤3中所述的矩阵通过二维数组的形式存储在所述的动态存储区中。步骤5中所述有用行的点阵信息和有用总行数以字节方式存储。 一种与上述点阵字库的压縮存储方法对应的解压方法,包括以下步步骤(1)在移动装置的内存中开辟一块动态存储区;步骤(2)把移动装置的静态存储器中所要解压文字所在的压縮点阵字库装载到所述的动态存储区中;步骤(3)根据所要还原字在所述的压縮点阵字库中的偏移量,取得该字的压縮点阵信息,并存储在所述的动态存储区中;步骤(4)将该压縮点阵信息转换为矩阵,并迸行转置变换,将转置矩阵 存储在所述的动态存储区中;步骤(5)根据解压后的点阵信息,在移动装置显示屏上显示该字;步骤(6)释放开辟的动态存储区,解压处理完成。与现有技术相比,本专利技术的有益效果是1. 对于宽度不同的文字,如英文、法文、越南文等,有明显的压 縮效果,解码方便,且不损失字信息,节省内存区域耗费,提高系统性 能,节约硬件成本。2. 当显示多个外文字时,从按本专利技术所述方式压縮的点阵字库中依次提取某字并逐个显示时,无需对每个字的宽度进行计算或设定来排 版。因为这个压缩的点阵字库存储的就是字的有用行信息,因此恢复后 字的宽度为其实际宽度。解压恢复被压縮字库,显示指定字在液晶显示 屏上时,不改变字型,是一种无损压縮方式。3. 因为有用行信息也描述了该字的实际宽度,在移动装置中对点阵字库压縮的同时可以得到字符宽度信息。因此当显示多个字符时可以 无需重新计算此字符的宽度而确定下一个字符的位置,达到自动识别字 符宽度的作用,使得界面更加美观。将此宽度用于多个非等宽字符的排 列时,可以使非等宽字符显示的更美观。附图说明图l是现有技术实施例的待压縮符号'i'的点阵及其字节存储示意图。图2是本专利技术实施例的点阵字体压縮过程示意图。图3是本专利技术实施例的点阵字体压縮方法流程图。图4是本专利技术实施例的压縮后点阵及其字节存储示意图。具体实施方式下面结合附图和实施例对本专利技术的具体实施方式做进一步详细的说 明,但不应以此限制本专利技术的保护范围。请参阅图2本专利技术实施例的点阵字体压縮过程示意图。图2中所 描述的将点阵字库数据压縮的过程是按照索引数为顺序依次将每个字进 行压縮的。首先,按照步骤S20,取得原点阵数据。此点阵数据需要按图1中 所示的字节方式存储,或转化为由字节方式存储。接着,步骤S21,从字库中第一个字开始,按顺序压縮。第一个字 的索引数为O。步骤S22判断是否压縮结束。判断是否压縮结束的条件的方法是 方法一,判断字库下一个字节是否为字库结束标志,如或非十六进 制数字;方法二,判断该字符的索引号是否超出字库字的总数。如果前述的几个条件满足其一,则表示压縮结束,进入步骤S23, 退出程序,否则进入步骤24,进行本次循环索引字的压縮。每次循环进行某一个字的压縮。压縮结束后将索引指向下一个字, 重复步骤22 26,直至字库中所有的字都压縮结束,退出程序。在压縮的过程中,为了解压恢复点阵字的需要,需要同时记录压 縮后的点阵信息,即步骤25所做工作,包括压縮点阵和有用行数目。本专利技术方法具体描述请参阅图3本专利技术实施例的点阵字体压縮方 法流程图。本专利技术点阵字库的压縮存储方法,包括以下步骤 步骤(1)在移动装置的内存中开辟一块动态存储区,用于装载所要压縮 本文档来自技高网
...

【技术保护点】
一种点阵字库的压缩存储方法,其特征在于,包括以下步骤:步骤(1)在移动装置的内存中开辟一块动态存储区,用于装载所要压缩文字的点阵字库;步骤(2)把移动装置的静态存储器中所要压缩文字的点阵字库装载到所述的动态存储区中;步骤(3)读取所述的点阵字库中第一个字的点阵信息,将这个字的点阵信息转换为矩阵形式,并存储到所述的动态存储区中;步骤(4)将步骤3中所述的矩阵进行转置变换处理,得到转置矩阵,并存储到所述的动态存储区中;步骤(5)以行为单位扫描该字的转置矩阵,记录该转置矩阵的有用行的点阵信息和有用总行数,并存储到所述的静态存储器中;步骤(6)依次将所要压缩文字的点阵字库中剩余所有字按照步骤3至步骤5的顺序,记录每个字的有用行点阵信息和每个字的有用行数,分别存储到所述的静态存储器中,所记录的行点阵信息数组便是压缩后的点阵字库;步骤(7)释放开辟的动态存储区,压缩处理完成。

【技术特征摘要】

【专利技术属性】
技术研发人员:左云霞
申请(专利权)人:嘉兴闻泰通讯科技有限公司
类型:发明
国别省市:33[中国|浙江]

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

1