当前位置: 首页 > 专利查询>惠州学院专利>正文

一种PNG图片的压缩方法技术

技术编号:8935953 阅读:162 留言:0更新日期:2013-07-18 04:41
本发明专利技术公开了一种PNG图片的压缩方法,包括以下步骤:(1)读取原始图像,获取原始图像的RGB颜色空间转换为HSV颜色空间;(2)利用步骤(1)中所获取的图像的像素数据,通过八叉树法设置调色板;(3)利用步骤(2)获得的调色板在步骤(1)所获取的图像上建立像素调色板索引,得到索引图像;(4)利用步骤(2)获得的调色板对步骤(3)所获取的索引图像中的像素数据进行数据压缩;(5)生成最终压缩的PNG格式图片。本发明专利技术通过将源图片转换为PNG格式图片,并删除不必要的数据块,得到较理想的PNG格式图片,同时具有较好的处理性能和较高的压缩率。

【技术实现步骤摘要】
一种PNG图片的压缩方法
本专利技术涉及图像压缩领域,尤其涉及一种PNG图片的压缩方法。
技术介绍
随着多媒体和通信技术的快速发展,多媒体信息的传输对数据的存储和传输提出了更高的要求,也给现有的有限带宽以严峻的考验,特别是具有庞大数据量的数字图像通信,更难以传输和存储,极大地制约了图像通信的发展。对于一个网站而言,页面的开启速度是至关重要的。它不仅直接影响到该网站在搜索引擎中的排名参数,更为重要的是,会减缓访客的页面开启速度。图像压缩的目的就是把原来较大的图像用尽量少的字节表示和传输,并且要求复原图像有较好的质量。利用图像压缩,可以减轻图像存储和传输的负担,使图像在网络上实现快速传输和实时处理。在开发手机游戏的过程中,PNG图片可以说是最常用的图片格式,于是,如何让PNG格式图片的压缩发挥到极致就会显得尤为重要。PNG图片一般来说都比较小,但是它也会因为包含很多无谓的数据块而变大。本专利技术通过将源图片转换为PNG格式图片,并通过删除不必要的数据块来将PNG文件压缩到最完美的状态。
技术实现思路
为了实现PNG图片更好的的压缩率,本专利技术提供一种PNG图片的压缩方法的设计方案。一种PNG图片的压缩方法,包括以下步骤:(1)读取原始图像,获取的原始图像的RGB颜色空间转换为HSV颜色空间。(2)利用步骤(1)中转换为HSV颜色空间后的图像,获取其像素数据,并通过八叉树法设置调色板。(3)利用步骤(2)获得的调色板在步骤(1)所获取的图像上建立像素调色板索引,得到索引图像。(4)利用步骤(2)获得的调色板对步骤(3)所获取的索引图像中的像素数据进行数据压缩。(5)生成最终压缩的PNG格式图片。步骤(2)所述八叉树法设置调色板的方法包括以下步骤:(a)建立一棵只有根节点node0的八叉树,并进行初始化;(b)将整个HSV颜色空间根据色调均匀等分成8个小颜色空间,分别顺序标记为node1,node2,…,node8,将其各个小颜色空间nodei(node1,node2,…,node8)作为根节点的叶子节点,为每个节点nodei建立一个链表用以存储该颜色空间的颜色,并设置一个计数器counti记录该颜色空间中的颜色数;(c)从步骤(1)获得的图像文件中顺序读入每一个像素的颜色,在八叉树中查找该颜色所在的子颜色空间对应的叶子节点nodei,累加nodei的计数器counti,并将该颜色及对应像素位置加入nodei的链表中。如果counti大于设定阈值则分裂该节点,则将该节点对应的子颜色空间均匀分为8份作为其叶子节点,并为每个叶子节点建立用于存储该颜色空间的颜色的链表以及对应的计数器,并将该节点的链表中的颜色及其像素位置重新分配到叶子节点中;(d)将所有叶子节点按counti值进行排序,将前256个加入调色板;(e)依次对剩余的叶子节点在位于调色板中的节点里面选择一个与其颜色最相似的节点进行合并,整理得到最终调色板。所述步骤(3)中建立像素调色板索引的方法为:依次处理步骤(2)中最终调色板中的节点,遍历节点的链表中的像素位置,将图像中对应像素位置的值改为调色板颜色索引。所述步骤(4)中数据压缩方法采用Deflate压缩算法。所述步骤(5)中最终得到的压缩的PNG格式图片包括5大数据块:文件头IHDR、调色板PLTE、透明度tRNS、像素数据IDAT、文件尾IEND。综上所述,本专利技术通过将源图片转换为PNG格式图片,并删除不必要的数据块,得到较理想的PNG格式图片,同时具有较好的处理性能和较高的压缩率。附图说明图1为本专利技术所述一种PNG图片的压缩方法的流程示意图。具体实施方式为了让本领域的技术人员能够更好地了解本专利技术的技术方案,下面结合附图对本专利技术作进一步的阐述。如图1所示,本专利技术揭示了一种PNG图片的压缩方法,包括以下步骤:(1)读取原始图像,获取原始图像的RGB颜色空间转换为HSV颜色空间。对图像的每一个像素点,设(r,g,b)分别是该像素点在RGB空间内的红、绿和蓝像素值,该值为0到255之间的实数。设max=max(r,g,b),min=min(r,g,b)。则相应在HSV空间中的(h,s,v)值分别为:,,。(2)利用步骤(1)中所获取的图像的像素数据,通过八叉树法设置调色板:(a)首先建立一棵只有根节点node0的八叉树,并进行初始化;(b)将整个HSV颜色空间根据色调均匀等分成8个小颜色空间,分别顺序标记为node1,node2,…,node8,将其各个小颜色空间nodei(node1,node2,…,node8)作为根节点的叶子节点,为每个节点nodei建立一个链表用以存储该颜色空间的颜色,并设置一个计数器counti记录该颜色空间中的颜色数;(c)从步骤(1)获得的图像文件中顺序读入每一个像素的颜色,在八叉树中查找该颜色所在的子颜色空间对应的叶子节点nodei,累加nodei的计数器counti,并为每个叶子节点建立用于存储该颜色空间的颜色的链表以及对应的计数器,并将该颜色及对应像素位置加入nodei的链表中。如果counti大于设定阈值则分裂该节点,即将该节点对应的子颜色空间均匀分为8份作为其叶子节点,并将该节点的链表中的颜色及其像素位置重新分配到叶子节点中;(d)将所有叶子节点按counti值进行排序,将前256个加入调色板;(e)依次对剩余的叶子节点在位于调色板中的节点里面选择一个与其颜色最相似的节点进行合并,整理得到最终调色板。(3)利用步骤(2)获得的调色板,依次处理步骤(2)中最终调色板中的节点,遍历节点的链表中的像素位置,将图像中对应像素位置的值改为调色板颜色索引,得到索引图像;(4)利用步骤(2)获得的调色板对步骤(3)所获取的索引图像中的像素数据采用Deflate压缩算法进行数据压缩;(5)进行的PNG图片结构化写,即将包括文件头IHDR、调色板PLTE、透明度tRNS、像素数据IDAT、文件尾IEND的5大数据块依次写入图片文件,得到最终压缩的PNG格式图片。本实施例只是本专利技术的较优实施方式,需要说明的是,在不背离本专利技术精神及其实质的情况下,熟悉本领域的技术人员当可根据本专利技术作出各种相应的改变和变形,但这些改变和变形都应属于本专利技术所附的权利要求的保护范围。本文档来自技高网...
一种PNG图片的压缩方法

【技术保护点】
一种PNG图片的压缩方法,其特征在于,包括以下步骤:(1)读取原始图像,获取原始图像的RGB颜色空间转换为HSV颜色空间;(2)利用步骤(1)中转换为HSV颜色空间后的图像,获取其像素数据,并通过八叉树法设置调色板;(3)利用步骤(2)获得的调色板在步骤(1)所获取的图像上建立像素调色板索引,得到索引图像;(4)利用步骤(2)获得的调色板对步骤(3)所获取的索引图像中的像素数据进行数据压缩;(5)生成最终压缩的PNG格式图片。

【技术特征摘要】
1.一种PNG图片的压缩方法,其特征在于,包括以下步骤:(1)读取原始图像,获取原始图像的RGB颜色空间转换为HSV颜色空间;(2)利用步骤(1)中转换为HSV颜色空间后的图像,获取其像素数据,并通过八叉树法设置调色板;(3)利用步骤(2)获得的调色板在步骤(1)所获取的图像上建立像素调色板索引,得到索引图像;(4)利用步骤(2)获得的调色板对步骤(3)所获取的索引图像中的像素数据进行数据压缩;(5)生成最终压缩的PNG格式图片。步骤(2)所述八叉树法设置调色板的方法包括以下步骤:(a)建立一棵只有根节点node0的八叉树,并进行初始化;(b)将整个HSV颜色空间根据色调均匀等分成8个子颜色空间,分别顺序标记为node1,node2,…,node8,将其各个子颜色空间nodei作为根节点的子节点,为每个子节点nodei建立一个链表用于存储该子颜色空间的颜色,并设置一个计数器counti记录该子颜色空间中的颜色数;(c)从步骤(1)获得的图像文件中顺序读入每一个像素的颜色,在八叉树中查找该颜色所在的子颜色空间对应的子节点nodei,累加n...

【专利技术属性】
技术研发人员:蔡昭权
申请(专利权)人:惠州学院
类型:发明
国别省市:

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

1