关于图片压缩,是为了上传服务器时有些地方有大小限制,因此,这里我总结了两种方法,个人感觉方法一比较准确一点。

方法一:

* 图片压缩方法一* * 计算 bitmap大小,如果超过64kb,则进行压缩* * @param bitmap* @return*/private Bitmap ImageCompressL(Bitmap bitmap) {double targetwidth = Math.sqrt(64.00 * 1000);if (bitmap.getWidth() > targetwidth || bitmap.getHeight() > targetwidth) {// 创建操作图片用的matrix对象Matrix matrix = new Matrix();// 计算宽高缩放率double x = Math.max(targetwidth / bitmap.getWidth(), targetwidth/ bitmap.getHeight());// 缩放图片动作matrix.postScale((float) x, (float) x);bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),bitmap.getHeight(), matrix, true);}return bitmap;}

方法二:

* 图片压缩方法二(不太准确)* * 计算 bitmap大小,如果超过64kb,则进行压缩* * @param bitmap*/private Bitmap ImageCompress(Bitmap bitmap) {// 图片允许最大空间 单位:KBdouble maxSize = 64.00;// 将bitmap放至数组中,意在bitmap的大小(与实际读取的原文件要大)ByteArrayOutputStream baos = new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);byte[] b = baos.toByteArray();// 将字节换成KBdouble mid = b.length / 1024;// 判断bitmap占用空间是否大于允许最大空间 如果大于则压缩 小于则不压缩if (mid > maxSize) {// 获取bitmap大小 是允许最大大小的多少倍double i = mid / maxSize;// 开始压缩 此处用到平方根 将宽带和高度压缩掉对应的平方根倍bitmap = zoomImage(bitmap, bitmap.getWidth() / Math.sqrt(i),bitmap.getHeight() / Math.sqrt(i));}return bitmap;}/**** 图片压缩方法二* * @param bgimage*            :源图片资源* @param newWidth*            :缩放后宽度* @param newHeight*            :缩放后高度* @return*/public Bitmap zoomImage(Bitmap bgimage, double newWidth, double newHeight) {// 获取这个图片的宽和高float width = bgimage.getWidth();float height = bgimage.getHeight();// 创建操作图片用的matrix对象Matrix matrix = new Matrix();// 计算宽高缩放率float scaleWidth = ((float) newWidth) / width;float scaleHeight = ((float) newHeight) / height;// 缩放图片动作matrix.postScale(scaleWidth, scaleHeight);Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,(int) height, matrix, true);return bitmap;}

Android学习之压缩图片到指定大小相关推荐

  1. Thumbnails压缩图片到指定大小

    网上看了很多demo,很多都是照搬别人的代码,不管有没有问题,有的甚至递归不关流,还有的递归疯狂往自己磁盘写文件,递归一次写一次,我自己把网上的demo整理改了下发出来. /** * @Descrip ...

  2. 如何压缩图片到500KB?怎么压缩图片到指定大小?

    如何压缩图片到500KB?这就需要用到压缩啦的图片压缩指定大小工具,只需三步就可以轻松压缩图片大小kb,具体操作步骤如下: 1.使用浏览器打开压缩啦,选择图片压缩指定大小功能. 2.上传需要压缩的图片 ...

  3. JPG图片怎么压缩到30k内?如何压缩图片到指定大小?

    现在各大网站对上传使用的图片都有大小的限制,有时我们在上传图片的时候会遇到图片要求要在30k以内的情况,在遇到这种情况的时候大家就可以使用在线照片处理器 (https://www.yasuotu.co ...

  4. java 压缩图片至指定大小

    需求: 压缩图片至300k以下 一开始没有思路在网上搜,发现google有个插件叫Thumbnails,然后看到了这篇文章: https://blog.csdn.net/u010355502/arti ...

  5. python——实现压缩图片至指定大小

    一.问题描述 遇到了一次那种要求上传图片,图片大小要在1M以内的,一开始尝试用python的cv2来resize实现,后来没成功,百度发现可以用以下方法实现. 二.代码如下 import os fro ...

  6. python 压缩图片为指定大小

    转自:scipy笔记-scipy.misc.imresize用法(方便训练图像数据) from skimage.transform import resize # 压缩图片 def predict_m ...

  7. 快速批量压缩照片到指定大小工具,照片图片批量压缩实现方法,批量压缩工具

    在工作中,会遇到在某些系统要上传照片,但是对于上传的照片大小有限制,比如限制大小不能超过1MB等,而外业拍摄的照片往往会超过限制的大小,那么这时就需要对照片进行压缩.但是外业照片数据巨大,人工逐张操作 ...

  8. 安卓android按宽/高缩放图片到指定大小并进行裁剪得到中间部分图片

    /*** 按宽/高缩放图片到指定大小并进行裁剪得到中间部分图片 <br>* 方 法 名:zoomBitmap <br>* 创 建 人:楼翔宇 <br>* 创建时间: ...

  9. 怎么压缩图片的体积大小,4款软件分享

    怎么压缩图片的体积大小?因为在日常生活和工作中,我们常常会遇到需要压缩图片大小的情况.图片的大小是由像素点数量和每个像素的颜色深度共同决定的,一般来说,像素点数量越多,每个像素的颜色深度越高,图片的清 ...

最新文章

  1. Halcon中MIN宏定义与自己定义的C++中MIN函数--重命名冲突问题解决方法
  2. 派森编程软件python-派森Python
  3. 蓝桥杯 Java B组 省赛决赛模拟赛 详解及小结汇总+题目下载【2013年(第4届)~2021年(第12届)】
  4. Qt Creator分析代码
  5. java mock什么意思_java @Mock, @MockBean 与 Mockito.mock( ) 之间的差异
  6. 【洛谷2986】【USACO10MAR】伟大的奶牛聚集
  7. 云计算将会让数据中心消失?
  8. Spring Boot 2.3.3 正式发布!2.4.0 正式版即将发布!
  9. nginx反向代理后获取不到客户端的ip地址问题
  10. 关于各种服务器在境外的软件安装缓慢的问题解决方法
  11. VMware 注册码
  12. python 串口助手 简书_【Python】PyQt5之串口助手【2】
  13. 无法使用内置管理员账户打开照片,请使用其他账户登录,然后再试一次
  14. html中如何定义斜框,html表格单元格添加斜下框线的方法
  15. 矩阵顺逆时针旋转、翻转 java
  16. 阿里云服务器能做小程序吗
  17. U盘被识别为其他设备(显示U盘图标但是不显示盘符)的解决办法
  18. 我来讲述计算机的知识,计算机基础知识讲述.doc
  19. 冒险解谜游戏:恩科迪亚Encodya mac中文版
  20. OpenCV + CPP 系列(卌一)图像特征匹配( FLANN 匹配)

热门文章

  1. 关于Python错误:“TypeError: Dog() takes no arguments”
  2. WEXITSTATUS与WIFEXITED
  3. c 语言sort函数,C/c++语言sort函数如何使用
  4. First Markdown Bolg
  5. linux 火狐欧朋谷歌浏览器,火狐/Chrome/Opera三大浏览器争霸
  6. redis集群搭建二,详细图解说明
  7. JSP六个动作详解...
  8. 电子科技大学820笔记【2011年】
  9. 计算机科学技术作文200,科技改变生活作文200字(精选7篇)
  10. H5之input属性