android 无损压缩

现在的安卓手机一张图片好几M,但是还是不如iOS的感觉,iOS的图片也就1M左右吧。为什么会有这么大的差距呢?这要从安卓的设计初衷来说起,当时谷歌开发Android的时候,考虑了大部分手机的配置并没有那么高,所以对图片处理是使用的Skia这个库。当然这个库的底层还是是用的jpeg对图片进行压缩处理。但是为了能够适配低端的手机(这里的低端是指以前的硬件配置不高的手机),所以Skia在进行图片处理并没有去使用压缩图像过程中基于图像数据计算哈弗曼表(关于图片压缩中的哈弗曼表,请自行查阅相关资料),可以参考[这里](http://www.cnblogs.com/MaxIE/p/3951294.html)。这里面详细解释为何Google没有使用高性能的压缩,简单来说就是考虑了当时的手机硬件,将一个压缩参数optimize_coding设置为了false,使得硬件较低的手机能够很好的处理图片。

网上的很多压缩都是bitmap.compress()或设置BitmapFactory缩放比例,可以实现压缩但是图片压缩到几百k时,图片已经很模糊了,所以这种压缩弃用。

解决方法:调用jpeg库进行压缩

说明:https://blog.youkuaiyun.com/hh7181521/article/details/81014839 基于libjpeg-turbo来进行图片的压缩,使用了哈弗曼表,这大大的提高了相同体积下图片的清晰度

源码:https://github.com/840631861/ImageCompress

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值