一种压缩图片文件的方法

文档序号:6607971阅读:326来源:国知局
专利名称:一种压缩图片文件的方法
技术领域
本发明涉及图片处理领域,特别涉及一种压缩图片文件的方法。
背景技术
手机开机时,显示的第一幅画面一般是一张LOGO图片,可能是运营商的 LOGO,也可能是制造商的LOGO。由于手机开机时的种种限制,此时来不及加载大型 的图型库,因此不能显示常规格式的图片。目前比较通用的做法,是在手机的闪存中, 存储原始的图片像素数据。但是这些像素数据比较占空间,存储一幅16位的QCIF屏幕 数据需要176X220X2 = 77440字节,一幅16位的QVGA屏幕数据需要240 X 320 X 2 = 153600字节。目前比较通用的手机硬件配置中,闪存空间从8M字节到128M字节不等, 尤其对于较低端的配置,如16M的配置,这幅图占用了 153600/(1024*1024*16) = 1%。
也许不是一个大数目,但是,在实际的手机开发过程中,有时候为了减少10K的空间 占用,都是相当困难的。

发明内容
本发明的目的是提供一种压缩图片文件的方法,其能实现用较小的存储空间存 储图片文件。本发明提供一种压缩图片文件的方法,包括以下步骤1.1、设置所述图片的存储格式;1.2、将所述图片中的颜色编辑成颜色表,对于其每个像素点,将其对应的颜色 表中的下标存储在一索引表中;1.3、读取步骤1.2中的索引表,并根据步骤1.1中的图片格式对图片进行RLE压 缩,将相邻的点用颜色值和连续相同色的颜色个数表示。所述步骤1.1设置的图片格式包括图片宽度、图片高度、色深、颜色表长度、颜 色表以及图片内容。所述步骤1.2包括以下步骤;1.2.1、读取图片中下一像素点颜色,记为颜色C;1.2.2、如果颜色C在建立的颜色表中,转步骤1.2.4,否则转步骤1.2.3 ;1.2.3、将颜色C存入颜色表中;1.2.4、将颜色C的下标存入颜色索引表中;1.2.5、如果已读完图片的最后一个像素,则进行步骤1.3,否则转步骤1.2.1。所述步骤1.3包括以下步骤1.3.1、读取所述颜色索引表中的下一索引,记为索引I;1.3.2、如果索引I跟上一个相同,转步骤1.3.3,否则转步骤1.3.4 ;1.3.3、将索引个数表L最末项加1 ;1.3.4、将索引I加入索引值表K,索引个数表L末尾新增一项,其值为1 ;
1.3.5、如果已读完所有索引,转步骤1.3.6;否则,转步骤1.3.1 ;1.3.6、读取索引值表K中的下一项,并将其存入一压缩表Z ;读取索引个数表L 中的下一项,记为入;1.3.7、如果λ为零,转步骤1.3.6,否则转步骤1.3.8 ;1.3.8、如果λ >最大长度,转步骤1.3.9;否则转步骤1.3.10,其中,最大长度 为表示索引表中的最大索引需要的字节数所能表示的最大整数减去最大索引值;1.3.9、将表示索引表中的最大索引需要的字节数所能表示的最大整数存入压缩 表,λ = λ-最大长度;1.3.10、如果λ为零,转步骤1.3.12,否则转步骤1.3.11 ;1.3.11、将λ-颜色表中的颜色个数存入压缩表;1.3.12、将图片宽度、高度、颜色深度、颜色表长度依次写入压缩文件;1.3.13、将颜色表写入压缩文件;1.3.14、将压缩表写入压缩文件。所述方法还包括图片解压缩步骤步骤Si、读取图片宽度、高度、颜色深度、颜色表长度,记为LC;步骤S2、读取下一颜色,并将该颜色存入颜色表;步骤S3、如果已读取的颜色个数超过LC,转步骤S4;否则,转步骤S2;步骤S4、如果LC < 200,索引长度LI=I;如果200 =< LC < 65000 ;索引 长度LI = 2 ;如果LC > 65000,索引长度LI = 4 ;步骤S5、读取长度为LI字节的数据,记为D ;步骤S6、如果D < LC,转步骤S7 ;否则,转步骤S8 ;步骤S7、将D存入像素表;步骤S8、将像素表的最末元素再存1+D-LC次;步骤S9、如果未读取完毕,转步骤S5;否则,转步骤S10;步骤S10、根据像素表,显示图片。采用本发明所述的一种压缩图片文件的方法,特别适用于LOGO图片,该方法 针对LOGO图片颜色相对单纯、存在大面积相同颜色的特点,采用颜色表结合RLE压缩 算法的压缩方式,即对图片的每个像素点,仅存储颜色表中的下标,并且将相邻的点用 颜色值和连续相同色的颜色个数来表示,本发明达到了既保持较高的图片压缩率,又易 于操作实现的目的。


图1为本发明所述压缩算法流程图;图2为本发明所述解压缩算法流程图。
具体实施例方式下面结合附图和实施例进一步说明本发明的技术方案。参见图1,本发明提供一种压缩图片文件的方法,包括以下步骤1.1、设置所述图片的存储格式。
所述步骤1.1设置的图片格式包括图片宽度、图片高度、色深、颜色表长度、颜 色表以及图片内容。格式具体见下表1:
权利要求
1.一种压缩图片文件的方法,其特征在于,包括以下步骤1.1、设置所述图片的存储格式;1.2、将所述图片中的颜色编辑成颜色表,对于其每个像素点,将其对应的颜色表中 的下标存储在一索引表中;1.3、读取步骤1.2中的索引表,并根据步骤1.1中的图片格式对图片进行RLE压缩, 将相邻的点用颜色值和连续相同色的颜色个数表示。
2.如权利要求1所述的方法,其特征在于,所述步骤1.1设置的图片格式包括图片宽 度、图片高度、色深、颜色表长度、颜色表以及图片内容。
3.如权利要求2所述的方法,其特征在于,所述步骤1.2包括以下步骤;1.2.1、读取图片中下一像素点颜色,记为颜色C;1.2.2、如果颜色C在建立的颜色表中,转步骤1.2.4,否则转步骤1.2.3;1.2.3、将颜色C存入颜色表中;1.2.4、将颜色C的下标存入颜色索引表中;1.2.5、如果已读完图片的最后一个像素,则进行步骤1.3,否则转步骤1.2.1。
4.如权利要求3所述的方法,其特征在于,所述步骤1.3包括以下步骤1.3.1、读取所述颜色索引表中的下一索引,记为索引I;1.3.2、如果索引I跟上一个相同,转步骤1.3.3,否则转步骤1.3.4;1.3.3、将索引个数表L最末项加1;1.3.4、将索引I加入索引值表K,索引个数表L末尾新增一项,其值为1;1.3.5、如果已读完所有索引,转步骤1.3.6;否则,转步骤1.3.1;1.3.6、读取索引值表K中的下一项,并将其存入一压缩表Z;读取索引个数表L中 的下一项,记为入;1.3.7、如果λ为零,转步骤1.3.6,否则转步骤1.3.8;1.3.8、如果λ>最大长度,转步骤1.3.9;否则转步骤1.3.10,其中,最大长度为表 示索引表中的最大索引需要的字节数所能表示的最大整数减去最大索引值;1.3.9、将表示索引表中的最大索引需要的字节数所能表示的最大整数存入压缩表, λ = λ-最大长度;1.3.10、如果λ为零,转步骤1.3.12,否则转步骤1.3.11;1.3.11、将λ-颜色表中的颜色个数存入压缩表;1.3.12、将图片宽度、高度、颜色深度、颜色表长度依次写入压缩文件;1.3.13、将颜色表写入压缩文件;1.3.14、将压缩表写入压缩文件。
5.如权利要求4所述的方法,其特征在于,所述方法还包括图片解压缩步骤 步骤Si、读取图片宽度、高度、颜色深度、颜色表长度,记为LC;步骤S2、读取下一颜色,并将该颜色存入颜色表; 步骤S3、如果已读取的颜色个数超过LC,转步骤S4;否则,转步骤S2; 步骤S4、如果LC < 200,索引长度LI=I;如果200 =< LC < 65000 ;索引长度 LI = 2 ;如果 LC > 65000,索引长度 LI = 4 ; 步骤S5、读取长度为LI字节的数据,记为D;步骤S6、如果D < LC,转步骤S7 ;否则,转步骤S8 ;步骤S7、将D存入像素表;步骤S8、将像素表的最末元素再存1+D-LC次;步骤S9、如果未读取完毕,转步骤S5;否则,转步骤S10;步骤S10、根据像素表,显示图片。
全文摘要
本发明揭示了一种压缩图片文件的方法,特别适用于LOGO图片,该方法针对LOGO图片颜色相对单纯、存在大面积相同颜色的特点,采用颜色表结合RLE压缩算法的压缩方式,即对图片的每个像素点,仅存储颜色表中的下标,并且将相邻的点用颜色值和连续相同色的颜色个数来表示,本发明达到了既保持较高的图片压缩率,又易于操作实现的目的。
文档编号G06T9/00GK102013105SQ20101025808
公开日2011年4月13日 申请日期2010年8月19日 优先权日2010年8月19日
发明者罗永兵 申请人:上海闻泰电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1