Android(安卓)图片压缩终极解决方案
16lz
2021-01-26
首先说一下论坛其他同学的压缩方法,基本上都是bitmap.compress 方法,要么压缩尺寸,要么降低图片质量,这种帖子一翻一大堆。有这方面开发的同学应该知道,通过这种压缩方式压缩完的图片效果很差,根本无法与市场上的成熟app 图片压缩功能相比。原因出在哪呢?
我们的调查之路开始了,cnblogs 上有一篇文章《为什么Android 的图片质量会比iPhone 的差?》 http://www.cnblogs.com/MaxIE/p/3951294.html , 在这篇文章里作者直接指出了问题所在之处,同学们自行移步观看,请仔细阅读。
好了,终极解决方案是什么呢? 如果想要提高压缩质量,我们要使用修改编译过的libjpeg 库(这里需要用到ndk 方面的知识不多说了)。那我们怎么修改编译呢?呵呵不用了,在github 上有老外编译好的libjpeg 库,大家自行去下载使用好了,网址点击打开链接
而上面那篇文章正是翻译了这个库的REASON.md,感兴趣可以看一下英文原文
PS:上传了压缩对比图片供大家下载,用原生的压缩方法能否达到这样的压缩效果?
PS:不好意思各位,有朋友反映demo压缩后的图片是黑的,我看了一下。请大家修改一下图片保存的路径就正常了,在MainActivity中改为:
我们的调查之路开始了,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的mk文件的一些见解
- Android(安卓)Studio Drawable和Mipmap文件夹的区别
- windows系统上安装配置使用Android(安卓)NDK r5
- Android仿微信朋友圈图片上传选择器布局
- android path对象使用方法与Region.Op的解释
- 创建一门新的编程语言-Flex&Bison&LLVM-(6)-LLVM在Android和PC上的
- 【Android(安卓)FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视
- Android(安卓)图片缓存处理
- Android调用so文件(C代码库)方法详解