首先说一下论坛其他同学的压缩方法,基本上都是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();


更多相关文章

  1. 关于android的mk文件的一些见解
  2. Android(安卓)Studio Drawable和Mipmap文件夹的区别
  3. windows系统上安装配置使用Android(安卓)NDK r5
  4. Android仿微信朋友圈图片上传选择器布局
  5. android path对象使用方法与Region.Op的解释
  6. 创建一门新的编程语言-Flex&Bison&LLVM-(6)-LLVM在Android和PC上的
  7. 【Android(安卓)FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视
  8. Android(安卓)图片缓存处理
  9. Android调用so文件(C代码库)方法详解

随机推荐

  1. Android(安卓)Applications Tutorial 20-
  2. android读写文件函数代码
  3. android menu学习
  4. android的WebView进度条
  5. Android(安卓)显示YUV编码格式
  6. android隐藏以及显示软键盘
  7. 如何去掉Android(安卓)Studio顶部状态栏
  8. Android(安卓)获取联系人的号码的类型描
  9. android 4.4 设置全屏
  10. Android(安卓)监听系统启动完毕事件