android实现图片缩放 旋转的几种方法
2013-06-14 16:19
851 查看
在android应用开发中会出现很多需要实现图片缩放的地方,或者是出于美观,或者是出于节省内存。。
在这里博主总结了几种比较常用的图片缩放的方法
第一种:通过 BitmapFactory.Options
第二种:通过 matrix
第三种:通过canvas对bitmap重绘得到缩放图
第四种方法:ThumbnailUtils
在这里博主总结了几种比较常用的图片缩放的方法
第一种:通过 BitmapFactory.Options
BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inJustDecodeBounds = true; BitmapFactory.decodeFile(picpathString, opts); //只把图片的边界信息加载到内存,节省内存 Log.i(TAG, "opts.outHeight=======>" + opts.outHeight); Log.i(TAG, "opts.outWidth=====>" + opts.outWidth); if (opts.outHeight != 0 && opts.outWidth != 0) { opts.inSampleSize = (int) ((opts.outWidth * 5) / width); //inSampleSize这个参数是压缩的倍数,具体可以自己调节,必须是int Log.i(TAG, "opt.inSampleSize---->" + opts.inSampleSize); } opts.inJustDecodeBounds = false; Bitmap bitmap = BitmapFactory.decodeFile(picpathString, opts); //此时得到的bitmap就是压缩后的bitmap了
第二种:通过 matrix
// 获取这个图片的宽度和高度 int width = _cameraImage.getWidth(); int hegith = _cameraImage.getHeight(); // 创建操作图片用的Matrix对象 Matrix matrix = new Matrix(); int degree = 90; Log.i(TAG, "degree--->" + degree); // 旋转图片 matrix.postRotate(degree); matrix.postScale(NewscaleWidth, NewscaleHeight);//缩放图片 // 创建新的图片 Bitmap resizedBitmap = null; resizedBitmap = Bitmap.createBitmap(_cameraImage, 0, 0, width, hegith, matrix, true);
第三种:通过canvas对bitmap重绘得到缩放图
Rect r = bitmap.getCropRect();//这个方法要自己写得到原bitmap所占的矩形区域 int width = r.width(); // CR: final == happy panda! int height = r.height(); Bitmap newbitmap = null; newbitmap= Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);{ Canvas canvas = new Canvas(newbitmap); Rect dstRect = new Rect(0, 0, new_width, new_height); //要把原图缩放到多大的矩形区域 Paint paint = new Paint(); paint.setAntiAlias(true); canvas.drawBitmap(newbitmap, r, dstRect, paint); //缩放成功 }
第四种方法:ThumbnailUtils
Bitmap newbitmap = null; newbitmap = ThumbnailUtils.extractThumbnail(imageAfterCroped, maxWeight, maxHeight, OPTIONS_RECYCLE_INPUT);这是我总结的集中简单的处理图片的方法,欢迎交流,转载请注明出处。谢谢。
相关文章推荐
- Android开发实现图片平移、缩放、倒影及旋转功能的方法
- Android实现图片缩放与旋转
- Android实现图片缩放与旋转
- 如何在Android中实现图片及动画的缩放和旋转
- android自定义View实现图片的绘制、旋转、缩放
- 用android来实现图片的绘制以及旋转缩放案例分析
- Android 实现图片的单点缩放、拖动、旋转
- QT中给各控件增加背景图片(可缩放可旋转)的几种方法
- android学习记录(二)-----imageView实现图片的旋转和缩放
- Android 图片处理之-->android.graphics.Camera实现图像的旋转、缩放
- android 多点触摸图片缩放的具体实现方法
- 用android来实现图片的绘制以及旋转缩放案例分析
- Android中实现圆角图片的几种方法
- Android 绘图基础:Bitmap(位图)与Matrix(矩阵)实现图片5种操作(平移、旋转、错切、缩放、对称)
- 用android来实现图片的绘制以及旋转缩放案例分析
- 讲解一下iOS图片单指旋转缩放实现方法
- Android 利用Matrix实现图片随手指平移、旋转、缩放
- Android中利用Matrix实现图片平移、缩放和旋转
- Android UI之ImageView实现图片旋转和缩放
- Android开发之imageView图片按比例缩放的实现方法