Android 图片压缩终极解决方案

首先说一下论坛其他同学的压缩方法,基本上都是bitmap.compress 方法,要么压缩尺寸,要么降低图片质量,这种帖子一翻一大堆。有这方面开发的同学应该知道,通过这种压缩方式压缩完的图片效果很差,根本无法与市场上的成熟app 图片压缩功能相比。原因出在哪呢?


我们的调查之路开始了,cnblogs 上有一篇文章《为什么Android 的图片质量会比iPhone 的差?》
http://www.cnblogs.com/MaxIE/p/3951294.html   在这篇文章里作者直接指出了问题所在之处,同学们自行移步观看,请仔细阅读。


好了,终极解决方案是什么呢? 如果想要提高压缩质量,我们要使用修改编译过的libjpeg 库(这里需要用到ndk 方面的知识不多说了)。那我们怎么修改编译呢?呵呵不用了,在github 上有老外编译好的libjpeg 库,大家自行去下载使用好了,网址 点击打开链接

而上面那篇文章正是翻译了这个库的REASON.md,感兴趣可以看一下英文原文

PPS:有的同学不会用NDK,那我传一份代码,用eclipse导入.项目里有一张1.6m的图片,运行以后用手机助手或者文件管理器到Android/data/com.example.testjpg/cache 文件夹里头看压缩后的图片

Demo下载地址:点击打开链接


PS:上传了压缩对比图片供大家下载,用原生的压缩方法能否达到这样的压缩效果?

PS:不好意思各位,有朋友反映demo压缩后的图片是黑的,我看了一下。请大家修改一下图片保存的路径就正常了,在MainActivity中改为:

//                                        File dirFile = getExternalCacheDir();
//                                        if (!dirFile.exists()) {
//                                                dirFile.mkdirs();
//                                        }
                                        
String dirFile = Environment.getExternalStorageDirectory().toString();


你可能感兴趣的:(android,libjpeg,图片压缩)