这两天也是重新找到了工作,总结了一下面试,发现被问到图片压缩的问题还是比较多的。所以我把以前写的一个图片压缩工具拿出来抽取成了一个库,一方面是复习一下这方面的知识,比如说AIDL的使用,图片压缩的多种方法等等,另一方面也希望被有这方面需求的小伙伴采纳或是提出意见和建议。

解释一下为什么要使用多进程压缩图片。由于压缩图片需要加载和操作Bitmap,这需要的内存非常大,有的低配手机就非常容易出现OOM的情况。由于多进程可以扩展应用内存,于是就有了这个方案。这样的话就算压缩进程崩溃也不会影响主进程的运行。在这个库中对压缩进程出现异常情况也进行了处理,如果出现奔溃或者通讯异常都会把压缩任务交还到主进程处理,这样就减少了一些不可预期的问题。

每天都要过得开心 ( ゜- ゜)つロ乾杯 !


Demo

Demo地址 https://github.com/wdzawdh/Compressor

使用方法

使用时把Demo中的compressor库粘贴到自己项目即可,当然可以打成arr或者jar包使用。需要使用的类只有一个ImageCompressor。

1.初始化

ImageCompressor imageCompressor = new ImageCompressor.Builder(context).setCompressFormat(CompressConfig.COMPRESS_WEBP).setMaxWidth(1028).setMaxHeight(1028).setMaxSize(700).setDestinationDir("压缩图片保存的文件夹(有默认)").startCompressProcess()//开启多进程压缩模式.build();

2.压缩图片

imageCompressor.compress(pickPhotoPath, new ImageCompressor.CompressImageListener() {@Overridepublic void onCompressSuccess(String basePath, String imgPath) {iv_content.setImageURI(Uri.parse("file://" + imgPath));}});

3.关闭进程

解绑压缩图片的服务进程,如果没有开启startCompressProcess则不需要释放。如果不解绑服务进程也不会影响程序运行。

@Override
protected void onDestroy() {super.onDestroy();//关闭进程(如果没有开启不需要关闭)mImageCompressor.stopCompressProcess();
}

Android多进程压缩图片库相关推荐

  1. 可能是最详细的Android图片压缩原理分析(一)—— Android图片压缩必备基础知识

    本篇文章已授权微信公众号guolin_blog(郭霖)独家发布 稀土掘金链接 前言: 最近在研究图片压缩原理,看了大量资料,从上层尺寸压缩.质量压缩原理到下层的哈夫曼压缩,走成华大道,然后去二仙桥,全 ...

  2. Android图片压缩(质量压缩和尺寸压缩)

    在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩):质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手 ...

  3. Android 图片压缩、照片选择、裁剪,上传、一整套图片解决方案

    1.Android一整套图片解决方案 http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820998&idx=1& ...

  4. android图片压缩上传系列-基础篇

    开发中遇到需要上传图片的场景还是很常见的,这就涉及到图片的压缩处理.如果不进行压缩,势必造成消耗大量的流量,下载图片的速度慢等. 关于android如何压缩,网上的资料也是很多,但大多数都是代码片段, ...

  5. android压缩图片质量,Android 图片质量压缩有关问题

    Android 图片质量压缩问题 本帖最后由 u013064347 于 2014-01-13 10:22:47 编辑 网上看到一个图片质量压缩法,传入1M以内图片能正常压缩,但是传入2M多的图片就报内 ...

  6. Android 图片压缩器

    概述 Android 图片压缩器:一款高效的图片压缩器库,支持批量压缩,异步压缩.多线程多任务压缩,压缩比设置等特性. 详细 代码下载:http://www.demodashi.com/demo/12 ...

  7. android zip压缩

    最近需要对输出的文件进行压缩,了解了下android的压缩功能,源码如下: activity调用: try {ZipUtil2.zip(exportPath, exportPath+".zi ...

  8. Android图片压缩尺寸和质量

    Android在处理图片时,如果不进行压缩处理,很容易就出现OOM内存溢出(OutOfMemory)问题,所以无论是第三方图片加载还是自己在处理图片时,都要进行压缩处理. Android系统中,一张图 ...

  9. android 图片压缩总结1

    在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩):质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手 ...

最新文章

  1. php singleton()
  2. 基于R的信用评分卡模型解析
  3. python新手入门总结_初学python的操作难点总结(新手必看篇)
  4. 计算机网络讨论课感悟,计算机网络课程学习心得体会
  5. 手机号码正则 中文姓名正则
  6. 常见HTTP状态码大全
  7. enfp工具箱怎么用_小丸工具箱使用技巧详细图解,值得各位学习
  8. 神经网络 知识图谱,神经网络基础知识
  9. 安培龙IPO过会:年营收5亿 同创伟业与中移创新是股东
  10. 训练集样本不平衡问题对深度学习的影响
  11. python下载bt文件_给定一个.torrent文件,如何在python中生成一个磁力链接?
  12. 盘一盘 Python 系列 - Sklearn
  13. 将MP4转换为GIF
  14. 在线支付(通过第三方支付平台易保支付)
  15. 【2023春招】美团技术岗笔试10min+AK
  16. 条件风险价值CVaR
  17. 2021年景德镇高考成绩查询时间,2021年景德镇陶瓷大学高考录取结果什么时候出来及查询系统入口...
  18. MyBatis框架部署
  19. PCM音频数据、DSD音频数据,spdif,以及DOP格式说明
  20. matlab中dc ac装置,基于MATLAB的DC_DC、DC_AC电路仿真分析

热门文章

  1. 将烧录过的SD卡磁盘分区合并并格式化
  2. 计算机十六进制4BH表示多大,【转】windows消息16进制对应表
  3. 寒武纪IPO:AI独角兽的求生时代
  4. Python基础知识判断正误
  5. C语言在字符串中查找字符串
  6. Java判断一个实体是不是空的
  7. borda法matlab,卫生应急风险矩阵法与Borda序值法评估
  8. 解密码技术(结城浩)概括
  9. HKC G801铃声音量增大办法
  10. java使用正则表达式匹配中文字符