Android(安卓)Bitmap用法大全,以后再也不担心了
16lz
2021-12-04
1、Drawable → Bitmap
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); // canvas.setBitmap(bitmap); drawable.setBounds( 0 , 0 , drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } |
2、从资源中获取Bitmap
?
1 2 3 | Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic); |
?
1 2 3 4 5 6 7 8 9 | private byte [] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100 , baos); return baos.toByteArray(); } |
4、byte[] → Bitmap
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private Bitmap Bytes2Bimap( byte [] b){ if (b.length!= 0 ){ return BitmapFactory.decodeByteArray(b, 0 , b.length); } else { return null ; } } |
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | static boolean saveBitmap2file(Bitmap bmp,String filename){ CompressFormat format= Bitmap.CompressFormat.JPEG; int quality = 100 ; OutputStream stream = null ; try { stream = new FileOutputStream( "/sdcard/" + filename); } catch (FileNotFoundException e) { // TODO Auto-generated catch block Generated by Foxit PDF Creator © Foxit Software http: //www.foxitsoftware.com For evaluation only. e.printStackTrace(); } return bmp.compress(format, quality, stream); } |
6、将图片按自己的要求缩放
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // 图片源 Bitmap bm = BitmapFactory.decodeStream(getResources() .openRawResource(R.drawable.dog)); // 获得图片的宽高 int width = bm.getWidth(); int height = bm.getHeight(); // 设置想要的大小 int newWidth = 320 ; int newHeight = 480 ; // 计算缩放比例 float scaleWidth = (( float ) newWidth) / width; float scaleHeight = (( float ) newHeight) / height; // 取得想要缩放的matrix参数 Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); // 得到新的图片 Bitmap newbm = Bitmap.createBitmap(bm, 0 , 0 , width, height, matrix, true ); // 放在画布上 canvas.drawBitmap(newbm, 0 , 0 , paint); |
7:File图片转Bitmap
?
1 | Bitmap bt = BitmapFactory.decodeFile( "/sdcard/myImage/" + "head.jpg" ); //图片地址 |
8://图片转Bitmap
?
1 2 3 4 5 6 7 8 9 | public Bitmap drawableToBitamp( int drawableResource) { //可以取raw里面的资源 BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true ; opt.inInputShareable = true ; InputStream is = this .getResources().openRawResource(drawableResource); BitmapFactory.decodeStream(is, null , opt); return BitmapFactory.decodeStream(is, null , opt); } |
更多相关文章
- android 拖拽图片&拖动浮动按钮到处跑
- android显示gif图片
- android 拖拽图片&拖动浮动按钮到处跑
- Android实现图片缩放示例
- android 获取网络上服务器图片
- 参考注释郭霖老师的Android相机程序
- Android图片裁剪Demo
- android URL获取图片显示到ImageView 控件上
- android canmera相机