您的位置:首页 > 其它

关于bitmap,drawable,btye[],String的相互转换的方法

2016-08-12 12:12 459 查看

背景:

近几天搞bitmap,找了几个bitmap和drawable的工具类,分享一下

1,Drawable—>Bitmap

`
Resources res=getResources();
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.sample_0);
Resources res=getResources();`


2,Bitmap—->Drawable

`
Drawable drawable =new BitmapDrawable(bmp);
`


3,Drawable → Bitmap

`
public static Bitmap drawableToBitmap(Drawable drawable){

int width = drawable.getIntrinsicWidth();

int height = drawable.getIntrinsicHeight();

Bitmap bitmap = Bitmap.createBitmap(width, height,

drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);

Canvas canvas = new Canvas(bitmap);

drawable.setBounds(0,0,width,height);

drawable.draw(canvas);

return bitmap;

}
`


4,从资源中获取Bitmap

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


5,Bitmap → byte[]

`
public byte[] getBitmapByte(Bitmap bitmap){
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return out.toByteArray();
}
`


6,byte[] → Bitmap

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


7,Bitmap → String

/**
* 图片转成string
*
* @param bitmap
* @return  String
*/
public static String convertIconToString(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();// outputstream
bitmap.compress(CompressFormat.PNG, 100, baos);
byte[] appicon = baos.toByteArray();
return Base64.encodeToString(appicon, Base64.DEFAULT);

}


8,String → Bitmap

/**
*
* @param String
* @param Bitmap
*/
public static Bitmap convertStringToIcon(String st) {
Bitmap bitmap = null;
//这里最好捕获异常,避免Crash
try {
byte[] bitmapArray;
bitmapArray = Base64.decode(st, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0,
bitmapArray.length);
return bitmap;
}
catch (Exception e) {
return null;
}
}


以上

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: