Android学习之压缩图片到指定大小
来源:互联网 发布:网络可爱美女图片 编辑:程序博客网 时间:2024/06/07 17:16
关于图片压缩,是为了上传服务器时有些地方有大小限制,因此,这里我总结了两种方法,个人感觉方法一比较准确一点。
方法一:
* 图片压缩方法一 * * 计算 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;}
2 0
- Android学习之压缩图片到指定大小
- 三种Android图片压缩方法 压缩到指定大小
- 三种Android图片压缩方法 压缩到指定大小
- 压缩图片到指定大小
- //图片压缩到指定大小
- [Android算法] bitmap 将图片压缩到指定的大小
- android将图片压缩到指定的大小
- [Android算法] bitmap 将图片压缩到指定的大小
- [Android算法] bitmap 将图片压缩到指定的大小
- Android 自定义camera压缩图片到指定大小
- [Android算法] bitmap 将图片压缩到指定的大小
- android 将图片压缩到指定的大小
- android 将图片压缩到指定的大小的示例
- iphone 压缩图片到指定的大小
- Bitmap图片压缩到指定字节大小
- IOS 压缩图片到指定大小kb
- 图片压缩到指定尺寸和大小
- 图片压缩指定大小
- 阿里巴巴公司DBA笔试题
- 辛星浅析plpgsql语法(中)
- 数据持久化--数据存储到本地
- 自定义View
- No mapping found for HTTP request with URI
- Android学习之压缩图片到指定大小
- C++对象模型——异常处理 (Exception Handling)(第七章)
- Java 枚举7常见种用法
- VS2013代码编辑器输入中文变为乱码问号???的问题
- 支持向量机之对偶学习算法(二)
- 黑马程序员——IO流
- ios-界面之间传值
- 2015 -8-20 学习笔记
- 黑马程序员=====ArrayList和泛型的概述