背景:
近几天搞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;
}
}