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

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

1、drawable---->bitmap

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:drawable---->bitmap

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


3、bitmap---->drawable

/** 
    * Bitmap转化为drawable 
    * @param bitmap 
    * @return 
    */  
    public static Drawable bitmap2Drawable(Bitmap bitmap){  
        return new BitmapDrawable(bitmap) ;  
    }  


4、bitmap---->byte[]

private byte[] Bitmap2Bytes(Bitmap bm){   
    ByteArrayOutputStream baos = new ByteArrayOutputStream();     
    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);     
    return baos.toByteArray();   
   }  

5、byte[]---->bitmap

private Bitmap Bytes2Bimap(byte[] b){   
            if(b.length!=0){   
                return BitmapFactory.decodeByteArray(b, 0, b.length);   
            }   
            else {   
                return null;   
            }   
     }  




 

原文地址:https://www.cnblogs.com/loonggg/p/4981868.html