您的位置:首页 > 移动开发 > Android开发

Android图片二进制与Bitmap、Drawable之间的转换

2013-09-16 11:01 405 查看
Android图片二进制与Bitmap、Drawable之间的转换

Java代码
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();
}

public Bitmap getBitmapFromByte(byte[] temp){

if(temp != null){
Bitmap bitmap =
BitmapFactory.decodeByteArray(temp, 0, temp.length);

return bitmap;
}else{

return null;
}
}

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

public
Bitmap getBitmapFromByte(byte[] temp){
if(temp != null){
Bitmap bitmap =
BitmapFactory.decodeByteArray(temp, 0, temp.length);
return
bitmap;
}else{
return null;
}
}

Java代码
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;

}

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

Java代码
Drawable drawable = new FastBitmapDrawable(bitmap);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: