欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

[Android算法] android图片压缩终极解决方案,,有这方面开发的同学应该知

来源: 开发者 投稿于  被查看 44398 次 评论:249

[Android算法] android图片压缩终极解决方案,,有这方面开发的同学应该知


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



我们的调查之路开始了,cnblogs上有一篇文章《为什么Android的图片质量会比iPhone的差?》

http://www.cnblogs.com/MaxIE/p/3951294.html 在这篇文章里作者直接指出了问题所在之处,同学们自行移步观看,请仔细阅读。



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


下载地址:

https://github.com/bither/bither-android-lib


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



PS:没想到火了,上传一下效果对比图,图片的尺寸等比压缩在1024像素左右,可以看到最终的压缩效果要比原生的压缩方法好很多

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

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

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

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




154304ukc9f9f2uhfbktqq.png154304e7hpmlmg4z212zgs.jpg

 NativeImgCompress.rar (3.05 MB) 压缩对比图.rar (6.25 MB)


用户评论