压缩图片实例
来源:互联网 发布:笔记本性能测试软件 编辑:程序博客网 时间:2024/05/01 16:18
实例如下,
package com.test.testactivity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.util.Log;public class CompressBMP {private static final String TAG = "CompressBMP";public static Bitmap decodeSampledBitmapFromResource(String path, int reqWidth, int reqHeight) {// 第一次解析将inJustDecodeBounds设置为true,来获取图片大小 final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(path, options); // 调用上面定义的方法计算inSampleSize值 options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); // 使用获取到的inSampleSize值再次解析图片 options.inJustDecodeBounds = false; return BitmapFactory.decodeFile(path, options);}public static int calculateInSampleSize(BitmapFactory.Options options,int reqWidth, int reqHeight) {// 源图片的高度和宽度final int height = options.outHeight;final int width = options.outWidth;Log.d(TAG, "原图大小为:"+height+"*"+width);int inSampleSize = 1;if (height > reqHeight || width > reqWidth) {// 计算出实际宽高和目标宽高的比率final int heightRatio = Math.round((float) height / (float) reqHeight);final int widthRatio = Math.round((float) width / (float) reqWidth);// 选择宽和高中最小的比率作为inSampleSize的值,这样可以保证最终图片的宽和高// 一定都会大于等于目标的宽和高。inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;}return inSampleSize;}}
然后在acticity中有如下代码:
Button btn_setview = (Button) this.findViewById(R.id.btn_setview);final ImageView imageview = (ImageView) this.findViewById(R.id.imageview);btn_setview.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubBitmap bitmap = CompressBMP.decodeSampledBitmapFromResource(APP_ROOT_DIR, 100, 100);Log.d(TAG, "原图压缩之后的大小为:"+bitmap.getHeight()+"*"+bitmap.getWidth());imageview.setImageBitmap(bitmap);}});
运行之后打印如下log:
原图大小为:768*1024原图压缩之后的大小为:96*128
1024/100 > 768/100,所以选择768/100作为压缩的比例,四舍五入为8,1024/8=128,768/8=96.
0 0
- java 压缩图片 实例
- java 压缩图片实例
- 压缩图片实例
- Android-图片选择,压缩,上传,加载的实例 (图片选择,压缩实现 )
- PHP实现图片压缩的两则实例
- Android:图片压缩的3种方法实例
- Android-图片选择,压缩,上传,加载 的 实例
- android图片压缩的3种方法实例
- android图片压缩的3种方法实例
- android图片压缩的3种方法实例
- android图片压缩的3种方法实例
- C#实现对图片文件的压缩、裁剪操作实例
- 图片压缩。大小压缩
- 图片压缩按比例压缩
- 压缩图片
- 压缩图片
- 图片压缩
- 图片压缩
- Python 动态生成变量名
- python celery(任务调度器)
- Android 百度地图开发 应用到自己的项目中
- OutMan——Objective-C中的ARC介绍和block的使用
- Rational software architect9 生成序列图 软件死机
- 压缩图片实例
- 辛星解读laravel源代码第一篇即Database的实现流程
- python中调用函数
- _itoa atoi、atof、itoa、itow _itoa_s 类型转换使用说明
- hdu3790
- spring事务处理详解
- 最老程序员创业开发实训3---采用MVC架构的应用Splash页面实现
- java综合(一)spring与struts2整合
- 源码下载中文网站