`
liu86th
  • 浏览: 114607 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Drawable、Bitmap、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;
  }
  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

 

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

 

3、Bitmap → byte[]

 

private byte[] Bitmap2Bytes(Bitmap bm){
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
  return baos.toByteArray();
  }
  private byte[] Bitmap2Bytes(Bitmap bm){
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
      bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
  return baos.toByteArray();
}

 

4、 byte[] → Bitmap

 

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

 

5、实例

 

public String ioToBase64() throws IOException {        String fileName = "d:/gril.gif"; //源文件        String strBase64 = null;        try {            InputStream in = new FileInputStream(fileName);            // in.available()返回文件的字节长度            byte[] bytes = new byte[in.available()];            // 将文件中的内容读入到数组中            in.read(bytes);            strBase64 = new BASE64Encoder().encode(bytes);      //将字节流数组转换为字符串            in.close();        } catch (FileNotFoundException fe) {            fe.printStackTrace();        } catch (IOException ioe) {            ioe.printStackTrace();        }        return strBase64;    }    public void base64ToIo(String strBase64) throws IOException {        String string = strBase64;        String fileName = "d:/gril2.gif"; //生成的新文件        try {            // 解码,然后将字节转换为文件            byte[] bytes = new BASE64Decoder().decodeBuffer(string);   //将字符串转换为byte数组            ByteArrayInputStream in = new ByteArrayInputStream(bytes);            byte[] buffer = new byte[1024];            FileOutputStream out = new FileOutputStream(fileName);            int bytesum = 0;            int byteread = 0;            while ((byteread = in.read(buffer)) != -1) {                bytesum += byteread;                out.write(buffer, 0, byteread); //文件写操作            }        } catch (IOException ioe) {            ioe.printStackTrace();        }    }
 
分享到:
评论

相关推荐

    android_Drawable、Bitmap、byte[]之间的转换.doc

    详细的介绍了android_Drawable、Bitmap、byte[]之间的转换 在android开发中非常实用

    Android Drawable、Bitmap、byte、灰度 转换

    Android Drawable、Bitmap、byte、灰度 转换

    Android Drawable、Bitmap、byte、灰度 之间的转换

    Android Drawable、Bitmap、byte、灰度 之间的转换

    java_一些图片管理工具类的标准代码_android_bitmap转drawable_高斯模糊代码

    bitmap转byte[] 获取缩略图 保存图片 光晕效果 获取bitmap的字节大小 将彩色图转换为黑白图 转换成圆角 高斯模糊 圆形图片 从Assets中读取图片 按比例缩小图片(单位像素) 判断图片旋转情况 旋转图片 图片旋转 根据...

    Android静默安装常用工具类

    图片工具类,可用于Bitmap, byte array, Drawable之间进行转换以及图片缩放,目前功能薄弱,后面会进行增强。如: bitmapToDrawable(Bitmap b) bimap转换为drawable drawableToBitmap(Drawable d) drawable转换为...

    Android一些模板代码

    android BitMap、Drawable、inputStream及byte[] 互转,dp和px之间转换,还原短信,横竖屏切换,获取各种窗体高度,禁用home键盘,开机启动,开机启动应用,挪动dialog的位置,判断网络状态,权限列表,设置apn,调节屏幕亮度,...

    Android开发人员不得不收集的代码

    drawable2Bitmap, bitmap2Drawable : drawable 与 bitmap 互转 drawable2Bytes, bytes2Drawable : drawable 与 byteArr 互转 view2Bitmap : view 转 Bitmap dp2px, px2dp : dp 与 px 互转 sp2px, px2sp : sp 与 px ...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--BitMap、Drawable、inputStream及byte[] 互转 |--ContentProvider内容提供者定义 |--DatePicker日期控件 |--desktop |--Dialog之位置的挪动与控制 |--Dialog实现无标提栏及自定义风格 |--Dialog风格Activity的...

    android图片处理总结

    1. android 图像处理系列之一--Bitmap、Drawable 和byte[]之间的相互转换..................................................2 2. android 图像处理系列之二--图片旋转、缩放、反转............................

    Android 开发技巧

    9.80、DRAWABLE、BITMAP、BYTE[]之间的转换 318 9.81、高循环效率的代码 320 9.82、给模拟器打电话发短信 321 9.83、加快模拟器速度 321 9.83.1、模拟器 “尚未注册网络” 322 9.84、EMULATOR命令行参数 322 9.85、...

    Android开发资料合集-World版!

    9.80、DRAWABLE、BITMAP、BYTE[]之间的转换 318 9.81、高循环效率的代码 320 9.82、给模拟器打电话发短信 321 9.83、加快模拟器速度 321 9.83.1、模拟器 “尚未注册网络” 322 9.84、EMULATOR命令行参数 322 9.85、...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

Global site tag (gtag.js) - Google Analytics