一种bmp图片文件的压缩、解压缩方法及系统的制作方法

文档序号:6460816阅读:347来源:国知局
专利名称:一种bmp图片文件的压缩、解压缩方法及系统的制作方法
技术领域
本发明属于图像处理技术领域,尤其涉及一种BMP图片文件的压缩、解 压缩方法及系统。
背景技术
目前,许多应用程序中都需要使用大量图片,例如图形化的用户交互界 面,并且随着各种应用程序的发展,其对图片大小的要求也越来越严格。由于 不经过压缩的BMP图片占用存储空间较大,尤其在嵌入式系统中,存储空间 极为有限,因此, 一般都会对这些图片进行压缩。目前,使用最多的图片压缩 方式为JPEG压缩,即压缩后的文件为JPG文件。
JPEG ( Joint Photographic Experts Group )是一个由ISO和IEC两个组织才几 构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个 专家组开发的算法称为JPEG算法,并且成为国际上通用的标准,因此又称为 JPEG标准。JPEG标准是一个适用范围很广的静态图像数据压缩标准,既可用 于灰度图像又可用于彩色图像。JPEG专家组开发了两种基本的压缩算法, 一种 是采用以离散余弦变换(Discrete Cosine Transform, DCT)为基础的有损压缩 算法,另一种是采用以预测技术为基础的无损压缩算法。使用有损压缩算法时, 在压缩比为25:1的情况下,压缩后还原得到的图像与原始图像相比较,非图像 专家难于找出它们之间的区别,因此得到了广泛的应用。虽然利用JPEG算法 可以对BMP图片文件进行压缩,但该压缩方法及其对应的解压缩方法的算法 较为复杂,运算量较大
发明内容
本发明实施例的目的在于提供一种BMP图片文件的压缩方法,旨在解决
现有的压缩方法的算法较复杂,运算量大的问题。
本发明实施例是这样实现的, 一种BMP图片文件的压缩方法,所述压缩
方法包括以下步骤
读取BMP图片文件的位图文件头,位图信息头及颜色表;
将所述位图文件头,位图信息头及颜色表写入压缩文件;
顺序地读取BMP图像文件的位图数据,将图像象素的颜色值及其对应的
Num值写入压缩文件,并且在写入连续多个相同的颜色值时,只写入其中一个
颜色值及对应的Num值,其中,Num为连续相同的颜色值的个数。
本发明实施例的另一目的在于提供一种BMP图片文件的压缩系统,所述
压缩系统包才舌
BMP图片文件读取模块,用于读取BMP图片文件的位图文件头,位图信 息头及颜色表;
压缩文件写入模块,用于将所述位图文件头,位图信息头及颜色表写入压 缩文件;以及
位图数据压缩模块,用于顺序地读取BMP图像文件的位图数据,将图像 象素的颜色值及其对应的Num值写入压缩文件,并且在写入连续多个相同的颜 色值时,只写入其中一个颜色值及对应的Num值,其中,Num为连续相同的 颜色值的个数。
本发明实施例的另一目的在于提供一种BMP图片的解压缩方法,所述解
压缩方法包括以下步骤
读取压缩文件的位图文件头,位图信息头及颜色表; 将所述位图文件头,位图信息头及颜色表写入BMP图片文件; 顺序地读取压缩文件位图数据的图像象素的颜色值及Num值,并将所述图
像象素的颜色值写入BMP图片文件Num次,其中,Num为连续相同的图像象
素颜色值的个数。本发明实施例的另一目的在于提供一种BMP图片的解压缩系统,所述解 压缩系统包括
压缩文件读取模块,用于读取压缩文件的位图文件头,位图信息头及颜色
表;
BMP图片文件写入模块,用于将所述位图文件头,位图信息头及颜色表写 入BMP图片文件;以及
位图数据解压缩模块,用于顺序地读取压缩文件位图数据的图像象素的颜 色值及Num值,并将所述图〗象象素的颜色值写入BMP图片文件Num次,Num 为连续相同的图像象素颜色值的个数。
在本发明的实施例中,不改变BMP图片文件的位图文件头,位图信息图 及颜色表,而对于BMP图片文件中位图数据部分的连续相同的图像象素的颜 色值,仅将其中一个图像象素的颜色值及将连续相同的图像象素的个数写入压 缩文件,从而达到了压缩BMP图片的目的,并且该压缩方法的算法较为简单, 运算量较小。


图1是本发明实施例提供的BMP图片文件的压缩方法的实施流程图; 图2是本发明实施例提供的BMP图片文件的解压缩方法的实施流程图; 图3是本发明实施例提供的BMP图片文件的压缩、解压缩系统的结构示 意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
在本发明的实施例中,不改变BMP图片文件的位图文件头,位图信息图及颜色表的数据,而对于BMP图片文件中位图数据部分的连续相同的图像象 素的颜色值,仅将其中 一个图像象素的颜色值及将连续相同的图像象素的个数 写入压缩文件,从而达到了压缩BMP图片的目的,并且该压缩方法的算法较 为简单,运算量较小。
图1示出了本发明实施例提供的BMP图片文件的压缩方法的实施流程, 详述如下
在步骤S101中,读取BMP图片文件的位图文件头、位图信息头、颜色表。 在步骤S102中,将该位图文件头,位图信息头及颜色表写入压缩文件。 在步骤S103中,读取BMP文件中位图数据的第i个图像象素的颜色值,
并置Num的值为l。其中,使用参数Num来记录连续相同的图像象素的颜色
值的个数,并且i的初始值为l。
在步骤S104中,判断是否存在第i+l个图像象素。当不存在第i+l个图像
象素时,执行步骤S105;当存在第i+l个图像象素时,执行步骤S106。
在步骤S105中,将第i个图像象素的颜色值,及对应的Num值写入压缩
文件。当不存在第i+l个图像象素时,说明第i个图像象素是位图数据的最后
一个象素,此时,将第i个图像象素的颜色值,及连续相同(与第i个图像象素
相同)的图像象素的颜色值个数值Num写入压缩文件,压缩文件生成完毕,结
束整个流程。
在步骤S106中,读取第i+l个图像象素的颜色值。
在步骤S107中,判断第i+l个图像象素的颜色值与第i个图像象素的颜色 值是否相同。当颜色值不相同时,执行步骤S108;当颜色值相同时,执行步骤 S109。
在步骤S108中,将第i个图像象素的颜色值,及对应的Num值写入压缩 文件,并使i的值增加l。执行完步骤S108后,返回执行步骤S103。
在步骤S109中,使Num的值增加l, i的值增加l。执行完步骤S109后, 返回执行步骤S104。为了便于理解,下面以24bit真彩色位图的BMP图片为例,作简要说明, 当然,8bit、 16bit及其他位图的BMP图片也可以4吏用本发明实施例提供的方法。 在24bit真彩色位图的位图数据中,每个点的颜色由3个字节表示,分别为R、 G、 B,图像的每一扫描行由表示图像象素的连续的字节组成。对于BMP图片 位图数据中的连续多个具有相同R、 G、 B值的图像象素(即位图数据中连续多 个相同字节组),压缩文件仅记录一个图像象素的R、 G、 B值,并增加l个字 节参数Num,用Num记录下连续相同的图像象素颜色值的个数。例如 一个 BMP图片中有连续4个图像象素的颜色值都为(100、 101、 102),即R为IOO, G为lOl, B为102;在BMP图片中位图数据的记录方式为100、 101、 102、 100、 101、 102、 100、 101、 102、 100、 101、 102,共需要12个字节表示,而 压缩文件的记录方式为100、 101、 102、 4,共4个字节。因此,具有相同的 颜色值的相邻图像象素越多,压缩比越高。
图2示出了本发明实施例提供的BMP图片文件的解压缩方法的实施流程, 详述如下
在步骤S201中,读取压缩文件的位图文件头、位图信息头、颜色表。 在步骤S202中,将该位图文件头,位图信息头及颜色表写入BMP文件。 在步骤S203中,顺序地读取压缩文件的图l象象素的颜色值及其对应的Num
值。为了能方便顺序读取,作为本发明的实施例,可以用一指示器指示当前的
读取位置,在读取之前,该指示器指示压缩文件的第一个图像象素。 在步骤S204中,将该图像象素的颜色值写入BMP文件Num次。 在步骤S205中,判断下一个图像象素是否存在。当不存在时,说明解压缩
完毕,结束整个流程。当存在下一个图像象素时,返回执行步骤S203,此时,
需要使指示器指示下一个图像象素。
图3示出了本发明实施例提供的BMP图片文件的压缩、解压缩系统的结
构,该系统包括压缩单元及解压缩单元。
在压缩单元31对BMP图片文件进行压缩的过程中,BMP图片文件读取模块311读取BMP图片文件的位图文件头,位图信息头及颜色表。压缩文件写入 模块312将该位图文件头,位图信息头及颜色表写入压缩文件。位图数据压缩 模块313顺序地读取BMP图像文件的位图数据,将图像象素的颜色值及其对 应的Num值写入压缩文件,并且在写入连续多个相同的颜色值时,只写入其中 一个颜色值及对应的Num值,其中,Num为连续相同的颜色值的个数。
在解压缩单元32对压缩文件进行解压缩的过程中,压縮文件读取模块321 读取压缩文件的位图文件头,位图信息头及颜色表。BMP图片文件写入模块 322将该位图文件头,位图信息头及颜色表写入BMP图片文件。位图数据解压 缩模块323顺序地读取压缩文件位图数据的图像象素的颜色值及Num值,并将 该图像象素的颜色值写入BMP图片文件Num次。
在本发明的实施例中,不改变BMP图片文件的位图文件头,位图信息图 及颜色表的数据,而对于BMP图片文件中位图数据部分的连续相同的图像象 素的颜色值,仅将其中一个图像象素的颜色值及将连续相同的图像象素的个数 写入压缩文件,从而达到了压缩BMP图片的目的,并且该压缩方法的算法较 为简单,运算量较小。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
权利要求
1、一种BMP图片文件的压缩方法,其特征在于,所述压缩方法包括以下步骤读取BMP图片文件的位图文件头,位图信息头及颜色表;将所述位图文件头,位图信息头及颜色表写入压缩文件;顺序地读取BMP图像文件的位图数据,将图像象素的颜色值及其对应的Num值写入压缩文件,并且在写入连续多个相同的颜色值时,只写入其中一个颜色值及对应的Num值,其中,Num为连续相同的颜色值的个数。
2、 一种BMP图片文件的压缩系统,其特征在于,所述压缩系统包括 BMP图片文件读^f莫块,用于读取BMP图片文件的位图文件头,位图信息头及颜色表;压缩文件写入模块,用于将所述位图文件头,位图信息头及颜色表写入压 缩文〗牛;以及位图数据压缩模块,用于顺序地读取BMP图像文件的位图数据,将图像 象素的颜色值及其对应的Num值写入压缩文件,并且在写入连续多个相同的颜 色值时,只写入其中一个颜色值及对应的Num值,其中,Num为连续相同的 颜色值的个数。
3、 一种BMP图片文件的解压缩方法,其特征在于,所述解压缩方法包括 以下步骤读取压缩文件的位图文件头,位图信息头及颜色表; 将所述位图文件头,位图信息头及颜色表写入BMP图片文件; 顺序地读取压缩文件位图数据的图像象素的颜色值及Num值,并将所述图像象素的颜色值写入BMP图片文件Num次,其中,Num为连续相同的图像象素颜色值的个数。
4、 一种BMP图片文件的解压缩系统,其特征在于,所述解压缩系统包括 压缩文件读取模块,用于读取压缩文件的位图文件头,位图信息头及颜色表;BMP图片文件写入模块,用于将所述位图文件头,位图信息头及颜色表写 入BMP图片文件;以及位图数据解压缩模块,用于顺序地读取压缩文件位图数据的图像象素的颜 色值及Num值,并将所迷图像象素的颜色值写入BMP图片文件Num次,Num 为连续相同的图像象素颜色值的个数。
全文摘要
本发明适用于一种图像处理技术领域,提供了一种BMP图片文件的压缩、解压缩方法及系统,所述压缩方法包括以下步骤读取BMP图片文件的位图文件头,位图信息头及颜色表;将所述位图文件头,位图信息头及颜色表写入压缩文件;顺序地读取BMP图像文件的位图数据,将图像象素的颜色值及其对应的Num值写入压缩文件,并且在写入连续多个相同的颜色值时,只写入其中一个颜色值及对应的Num值,其中,Num为连续相同的颜色值的个数。该压缩方法不仅能达到压缩BMP图片的目的,并且该压缩方法的算法较为简单,运算量较小。
文档编号G06T9/00GK101546434SQ20081006637
公开日2009年9月30日 申请日期2008年3月28日 优先权日2008年3月28日
发明者朱周姒 申请人:深圳市同洲电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1