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;
}
}
非著名程序员可能是东半球最好的技术分享公众号。每天,每周定时推送一些有关移动开发的原创文章和教程,微信号:smart_android。
浙公网安备 33010602011771号