Drawable、Bitmap、byte[]之间的转换

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);  

        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());  

        drawable.draw(canvas);  

        return bitmap;  

}

从资源中获取Bitmap

Resources res=getResources();  

Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);  

Bitmap → byte[]

private byte[] bitmapToBytes(Bitmap bm)

{  

    ByteArrayOutputStream baos = new ByteArrayOutputStream();    

    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);    

    return baos.toByteArray();  

}  

byte[] → Bitmap

private Bitmap bytesToBimap(byte[] b)

{  

   if(b.length!=0)

   {  

       return BitmapFactory.decodeByteArray(b, 0, b.length);  

   }  

   else 

   {  

       return null;  

   }  

} 

你可能感兴趣的:(drawable)