关闭

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

292人阅读 评论(0) 收藏 举报
分类:

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); 
0
0
查看评论

Android开发中Bitmap和Drawable的区别

- Drawable和Bitmap之间可以互相转换,Drawable占用内存远小于Bitmap。- setImageDrawable使用资源文件;setImageBitmap使用bitmap图片,该图片可能是读取本地相册,或者从资源文件转换而来。- setImageResource()和setIma...
  • liu537192
  • liu537192
  • 2015-08-14 17:37
  • 1434

Android将drawable图像转化为二进制字节数组与逆转换

首先是将图像转换为二进制字节数组进行存储 // ------------------------将drawable 图像转化成二进制字节---------------- public synchronized byte[] drawableToByte(Drawable drawable...
  • wx_962464
  • wx_962464
  • 2013-01-04 22:38
  • 8281

android的drawable 和bitmap的效率对比测试

下这个是测试加载1000个Drawable对象的代码: public class Main extends Activity { int number = 1000; Drawable[] array; @Override public void onCr...
  • puhaibo_skynet
  • puhaibo_skynet
  • 2014-08-30 11:45
  • 684

Android 将drawable下的图片转换成bitmap、Drawable

将drawable下的图片转换成bitmap 1、 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.xxx); 2、Resources r = this.getContext().get...
  • u014120638
  • u014120638
  • 2015-05-04 14:16
  • 4985

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

Android图片二进制与Bitmap、Drawable之间的转换 Java代码   public byte[] getBitmapByte(Bitmap bitmap){      ByteArrayOutputStream out = new ...
  • sir_zeng
  • sir_zeng
  • 2014-01-13 22:56
  • 765

Android平台实现位图(Bitmap)的序列化和反序列化

android整个上层java开发框架可以分为四个方面:界面(activity和appwidget)、消息(Intent和Message)、服务(Service)和数据(Sqllite、Content Provider)。 1.新的序列化方式: android提供了一种新的类型:Parc...
  • jdsjlzx
  • jdsjlzx
  • 2012-12-21 11:06
  • 4893

Android 中 Bitmap 和 Drawable 相互转换的方法

Drawable —> Bitmap 获取资源文件(Drawable)中的 Bitmap Resources res = getResources(); Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.ic_logo);...
  • l_lhc
  • l_lhc
  • 2016-03-18 14:42
  • 21457

Activity之间传递图片(Drawable,Bitmap)

activity之间传递drawable(bitmap)图片
  • Json_Jerry
  • Json_Jerry
  • 2017-08-02 16:24
  • 580

Drawable和Bitmap的区别

Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。     Drawable - 作为Android平下通用的图形对...
  • kazeik
  • kazeik
  • 2013-12-29 20:59
  • 24365

Android使用Palette把drawable转为bitmap图像大小改变的问题

项目中要做成以下的效果,本地应用直接使用包名和颜色值遍历找对应,三方应用要去提取app的icon颜色作为背景,首先想到了Android5.0新特性相关的palette。
  • u012453607
  • u012453607
  • 2016-01-23 15:07
  • 1109
    个人资料
    • 访问:12262次
    • 积分:153
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:1篇
    • 译文:0篇
    • 评论:20条
    文章分类
    文章存档
    最新评论