Bitmap与Drawable,byte[]之间的转化

android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下,以便于以后随时可用

1、drawable---->bitmap

View Code
 1 public static Bitmap drawableToBitmap(Drawable drawable) {             
 2        Bitmap bitmap = Bitmap   
 3                        .createBitmap(   
 4                                       drawable.getIntrinsicWidth(),   
 5                                        drawable.getIntrinsicHeight(),   
 6                                       drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888   
 7                                                       : Bitmap.Config.RGB_565);           Canvas canvas = new Canvas(bitmap);   
 8        //canvas.setBitmap(bitmap);   
 9        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());   
10         drawable.draw(canvas);   
11        return bitmap;   
12 }  

2、从资源中获取Bitmap:drawable---->bitmap

View Code
1 Resources res=getResources();     
2 Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);  
3 //或者这种方法也行,这两种方法都一样
4 Bitmap bmp = ((BitmapDrawable)this.getResources.getDrawable(R.drawable.pic)).getBitmap();

3、bitmap---->drawable

View Code
1 /** 
2     * Bitmap转化为drawable 
3     * @param bitmap 
4     * @return 
5     */  
6     public static Drawable bitmap2Drawable(Bitmap bitmap){  
7         return new BitmapDrawable(bitmap) ;  
8     }  

4、bitmap---->byte[]

View Code
1 private byte[] Bitmap2Bytes(Bitmap bm){   
2     ByteArrayOutputStream baos = new ByteArrayOutputStream();     
3     bm.compress(Bitmap.CompressFormat.PNG, 100, baos);     
4     return baos.toByteArray();   
5    }  

5、byte[]---->bitmap

View Code
1 private Bitmap Bytes2Bimap(byte[] b){   
2             if(b.length!=0){   
3                 return BitmapFactory.decodeByteArray(b, 0, b.length);   
4             }   
5             else {   
6                 return null;   
7             }   
8      }  
原文地址:https://www.cnblogs.com/loonggg/p/2852293.html