一种基于哈夫曼算法提升图片压缩传输的方法技术

技术编号:28768383 阅读:17 留言:0更新日期:2021-06-09 10:54
本发明专利技术涉及一种基于哈夫曼算法提升图片压缩传输的方法,包括:读取图片数据,对所述图片数据进行逐像素的扫描,将每个像素的R、G、B通道分离出来;将分离出来的RGB通道,重新组装成新像素RGB数据;将新像素RGB数据进行哈希法压缩,存入一个新的文件中,形成压缩图片数据。本发明专利技术图片bitmap是由很多像素组成,一个像素由ARGB四个通道组成,在保证图片质量前提下,我们可以把A透明度通道去掉,一个像素占用内存减少四分之一,一张图片体积就优化了25%,有利于提升图片的传输速度。有利于提升图片的传输速度。

【技术实现步骤摘要】
一种基于哈夫曼算法提升图片压缩传输的方法


[0001]本专利技术涉及图像处理
,尤其涉及一种基于哈夫曼算法提升图片压缩传输的方法。

技术介绍

[0002]随着智能手机的普及和手机像素的不断提高,现在人们使用手机拍照,图片分享给好友,图片发朋友圈的频率是越来越高,由于像素的提高导致拍照同一张图片所占用内存越来越大,图片体积增加导致图片在网络传输的效率越来越慢用户体验效果越来越差,如何满足人们对图片需求是未来发展的趋势。
[0003]安卓图片传输时占用内存比较大,传输效率比较低,利用系统自带skia(核心库就是libjpeg库)图形引擎库,受制系统版本和谷歌系统限制(低版本谷歌阉割了哈夫曼算法),不能很好的定制化处理图片和全版本兼容。

技术实现思路

[0004]本专利技术正是针对上述问题,提供一种基于哈夫曼算法提升图片压缩传输的方法。本专利技术根据需求利用库的哈夫曼算法,对图片进行定制化压缩处理,达到图片的极致化传输和全版本兼容。
[0005]为实现上述目的,本专利技术的具体技术方案如下:
[0006]一种基于哈夫曼算法提升图片压缩传输的方法,包括:
[0007]S1、读取图片数据,对所述图片数据进行逐像素的扫描,将每个像素的R、G、B通道分离出来;
[0008]S2、将分离出来的RGB通道,重新组装成新像素RGB数据;
[0009]S3、将新像素RGB数据进行哈希法压缩,存入一个新的文件中,形成压缩图片数据。
[0010]优选地,所述步骤S1中将每个像素的R、G、B通道分离出来的方法为:
[0011]对像素中R通道向右位移16位再&0xFF,把新的R通道保存起来;
[0012]再对像素中G通道向右位移8位再&0xFF,把新的G通道保存起来;
[0013]最后对像素中B通道&0xFF。
[0014]优选地,步骤S3具体为:
[0015]创建jpeg压缩对象object,将文件存储到目录下,设置压缩参数;图片的通道模式为RGB,开启哈夫曼功能,开始压缩,循环写入每一行数据,压缩完成释放jpeg对象。
[0016]进一步地,所述压缩参数为图片宽高。
[0017]本专利技术图片bitmap是由很多像素组成,一个像素由ARGB四个通道组成,在保证图片质量前提下,我们可以把A透明度通道去掉,一个像素占用内存减少四分之一,一张图片体积就优化了25%,有利于提升图片的传输速度。
具体实施方式
[0018]为了便于本领域的普通技术人员能够理解并实施本专利技术,下面将对本专利技术实施例作进一步说明。
[0019]本专利技术提供的一种基于哈夫曼算法提升图片压缩传输的方法,包括:
[0020]S1、读取图片数据,对所述图片数据进行逐像素的扫描,将每个像素的R、G、B通道分离出来;
[0021]其中,所述步骤S1中将每个像素的R、G、B通道分离出来的方法为:
[0022]对像素中R通道向右位移16位再&0xFF,把新的R通道保存起来;
[0023]再对像素中G通道向右位移8位再&0xFF,把新的G通道保存起来;
[0024]最后对像素中B通道&0xFF。
[0025]S2、将分离出来的RGB通道,重新组装成新像素RGB数据;
[0026]S3、将新像素RGB数据进行哈希法压缩,存入一个新的文件中,形成压缩图片数据。
[0027]其中,步骤S3具体为:
[0028]创建jpeg压缩对象object,将文件存储到目录下,设置压缩参数,例如图片宽高,;图片的通道模式为RGB,开启哈夫曼功能,开始压缩,循环写入每一行数据,压缩完成释放jpeg对象。
[0029]本专利技术原理如下:
[0030]1)图片bitmap是由很多像素组成,一个像素由argb四个通道组成,在保证图片质量前提下,我们可以把a透明度通道去掉,一个像素占用内存减少四分之一,一张图片体积就优化了25%。
[0031]解析bitmap获取argb数据,获取里面信息,得到图片中的像素信息,通过对图片宽高的双重循环,获取图片的每个像素,对像素中r通道向右位移16位再&0xFF把新的r通道保存起来,再对像素中g通道向右位移8位再&0xFF把新的g通道保存起来,再对像素中b通道&0xFF,最后把rgb数据重新组装(对应本专利技术步骤S1/2)。
[0032]2)把得到的新的图片的信息根据需处理,比如最终希望图片的宽,高,品质,路径,开启哈夫曼算法压缩,存入一个新的文件中。
[0033]创建jpeg压缩对象(object),将文件存储到目录下,设置压缩参数例如图片宽高,图片的通道模式为rgb,开启哈夫曼功能,开始压缩,循环写入每一行数据,压缩完成释放jpeg对象(对应本专利技术步骤S3)。
[0034]以上所述实施例仅表达了本专利技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本专利技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进,这些都属于本专利技术的保护范围。因此,本专利技术专利的保护范围应以所附权利要求为准。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于哈夫曼算法提升图片压缩传输的方法,其特征在于,包括:S1、读取图片数据,对所述图片数据进行逐像素的扫描,将每个像素的R、G、B通道分离出来;S2、将分离出来的RGB通道,重新组装成新像素RGB数据;S3、将新像素RGB数据进行哈希法压缩,存入一个新的文件中,形成压缩图片数据。2.根据权利要求1所述的基于哈夫曼算法提升图片压缩传输的方法,其特征在于,所述步骤S1中将每个像素的R、G、B通道分离出来的方法为:对像素中R通道向右位移16位再&0xFF,把新的R通道保存起来...

【专利技术属性】
技术研发人员:朱代豪
申请(专利权)人:深圳市瑞驰信息技术有限公司
类型:发明
国别省市:

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

1