没错,第一篇技术博客就给大家带来一重磅炸弹,绝对实用,图片压缩,在这里你将看到2.5M如何无损的变为200多kb,差不多十分之一吧,重点,请注意重点,无损,无损,无损!
我们开发中常见的就是图片,当然,平时简简单单的显示什么的就算了,各种框架给你处理,缩略图啥的都有,那么我们今天入手的是什么呢?想想这么一个场景,当我们发朋友圈的时候,有没有考虑过,多图啊,多图势必会带来oom哈,这是逃不脱的魔咒啊!那么我们接下来就想想如何来进行图片压缩吧,网上也是一大堆压缩,从比例到质量。。。对于简单的来说确实也够了,但是你拍张照片3M,硬生生的把他压缩到200kb,结果是一片模糊,简直连熟悉的影子都对比不出了。。。那么我们就有了一个有效的压缩算法,基于C语言实现的,所以需要调JNI咯,所以。。。我也就不解释了,直接步骤上起来:
- 第一步,下载JNI(如果图方便的话就直接下载so文件就行)
- 第二步,对JNI进行NDK-BUILD编译生成出SO文件
- 拷贝进入我们的项目文件夹libs/armeabi(如果自己编译出适配的so就新建对应的文件夹就行)
- 接下了就需要一个已经写好了的类,直接拷贝进入你的项目,但是这里有个主意的地方,出现相关问题参考该博文,关于无法调用so文件中的方法:http://m.blog.csdn.net/article/details?id=7986350
好了,就这么愉快的结束了,最后附上本人测试结果:
由于这图片上传限制小于2M 所以这里原图是2.5M 无法上传上来,大家可以想象下2.5M的图大概很清晰吧,下面是压缩的2中方式,一种设置false一种设置true进行压缩:
这是第一种方式,参数设置成false产生的,大小为348kb
这是第二种压缩方式,参数设置为true产生的结果图片,大小为295kb
好了,看了上面内容是不是心动了???接下了这个传送门将带你去遇见你想要的,,,https://github.com/bither/bither-android-lib
**
最后附上我的测试项目下载地址,里面有详细注释,不懂的可以直接联系我!http://download.csdn.net/detail/loveroselove/9495382
**
如何使用我就不介绍了,开源的东西,感谢作者!!!如果在使用过程遇到什么问题可以来提问,我愿为大家解答下~~~