Drawable、Bitmap、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
Resources res=getResources();
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);


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


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


5、resource -> BitmapDrawable, Bitmap
Resources r = this.getContext().getResources();
InputStream is = r.openRawResource(R.drawable.my_background_image); 
BitmapDrawable bmpDraw = new BitmapDrawable(is);
Bitmap bmp = bmpDraw.getBitmap();

//或者以下方式
//BitmapDrawable dra = getResources().getDrawable(R.drawable.my_background_image);
//Bitmap bmp = dra.getBitmap();

转自:http://www.iteye.com/topic/642128

你可能感兴趣的:(bitmap,drawable,byte)