Drawable、Bitmap、byte[]之间的转换

最近想试试从Android部分获取一张图片在Unity中进行显示,需要将图片转换为byte[]格式,借此机会整理一下Android的图片转换,即Drawable、Bitmap、byte[]之间的转换,希望能给大家带来一些帮助。

1、Drawable → Bitmap

转成Bitmap对象后,可以将Drawable对象通过Android的SK库存成一个字节输出流,最终还可以保存成为jpg和png的文件。

转化方法有不少:

比如有一个Drawable da

BitmapDrawable bd = (BitmapDrawable) da;

Bitmap bm = bd.getBitmap();

最终bm就是我们需要的Bitmap对象了。

或者使用如下方式:

代码如下:

public static Bitmap drawable2Bitmap(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 → Drawable

比如有一个Bitmap bm

BitmapDrawable bd=new BitmapDrawable(bm);
因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。

代码如下:


public static Drawable Bitmap2Drawable(Bitmap bitmap) { BitmapDrawable bd = new BitmapDrawable(bitmap); // 因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。
return bd; }

3、从资源中获取Bitmap

代码如下:

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

4、Bitmap → byte[]

代码如下:


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

5、 byte[] → Bitmap

代码如下:

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

Android图片转换相关推荐

  1. android 图片转换圆形 黑色背景,Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色...

    Android 更改纯色背景图片颜色,可实现一张背景圆形图片展示不同颜色 项目中可能会遇到比如多个纯色圆形背景列表或者说纯色圆形头像背景,一般让UI设计师设计多张背景图:但是有更好的方法只需一张图就可 ...

  2. Android图片转换类 1. Bitmap去色,转换为黑白的灰度图, 2. Bitmap图片加圆角效果

    /** * 处理图片的工具类. * */public class ImageTools { /***//** * 图片去色,返回灰度图片 * @param bmpOriginal 传入的图片 * @r ...

  3. android 图片转换成base64

    1.布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...

  4. Android Bitmap转换WebP图片导致损坏的分析及解决方案

    Android Bitmap转换WebP图片导致损坏的分析及解决方案 参考文章: (1)Android Bitmap转换WebP图片导致损坏的分析及解决方案 (2)https://www.cnblog ...

  5. android 获取drawable 对象,Android 实现将本地资源图片转换成Drawable的方法

    Android 实现将本地资源图片转换成Drawable的方法 发布时间:2020-11-06 16:37:09 来源:亿速云 阅读:255 作者:Leah 这篇文章将为大家详细讲解有关Android ...

  6. android图片转换为二进制流,Android图片二进制与Bitmap、Drawable之间的转换

    Android图片二进制与Bitmap.Drawable之间的转换 Java代码 public byte[] getBitmapByte(Bitmap bitmap){ ByteArrayOutput ...

  7. android与ios图片类型转换,ios11图片转换工具

    ios11图片转换工具由微软为大家提供,当前ios11正式版上线之后,许多苹果用户已经升级了自己的系列,但很尴尬的一点是,当前win10系统中并不支持HEIC格式的图片,所以微软快速反应,针对此类问题 ...

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

    将drawable下的图片转换成bitmap 1. Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.xx ...

  9. Android app本地图片转换成Drawable对象的方法

    app开发中把app的res下drawable的图片转换成drawable对象 也是常有的功能 下面就记录下两种转换的方法 第一种 方法 借助ContextCompat 转换方法 Drawable d ...

最新文章

  1. BIG DATA 大数据时代来临
  2. 你敢参与,我就敢送!牛转好运来,新春大抽奖
  3. Vue精简版风格指南
  4. c语言程序的多文件组织,C代码多文件的组织
  5. 2-RabbitMQ核心概念及AMQP协议
  6. MySQL☞insert value与values
  7. ACM_一道耗时间的水题
  8. Thymeleaf 随记
  9. Android开发环境的搭建教程
  10. Adding Powers
  11. 堆溢出off-by-one(asis-ctf-2016 pwn 之 b00ks)
  12. 计算机识别不到硬盘,解决BIOS检测不到硬盘的问题
  13. QT5.5.0+VS2013(X64)+hidapi的USB继续深究之 QT的汉字显示
  14. 工业镜头景深计算及工业镜头技术分析
  15. 重磅 | Hadoop的第二个十年
  16. 单元测试和E2E测试
  17. AngularJs - Javascript MVC 框架
  18. 不负春光不负卿,听康大厨讲讲OpenStack重要组件的那些事儿
  19. [Swift]LeetCode414. 第三大的数 | Third Maximum Number
  20. 采用EM算法对高斯混合模型(GMM)进行参数估计

热门文章

  1. a类计算机机房建设标准,A类机房建设标准和B类机房建设标准有什么差别
  2. java母子年龄计算,小明12岁了,妈妈的年龄比小明大20岁,请问几年后妈妈的年龄是小明的两倍。
  3. win10 休眠设置无效_win10电脑休眠后无法唤醒的解决办法
  4. POJ-2325解题报告
  5. 如何让在国内访问github网站的速度变快
  6. MDF和DHF、DMR、DHR三者差异?注册与备案文件?
  7. 谈谈技术债务的定义,影响以及管理
  8. vivi采集php,php源码:VIVI万能小偷程序1.5 智能采集不求人(内置2条采集规则)
  9. EM2040D和SES2000采集图像判读(一)
  10. torch.nn.modules.activation.ReLU is not a Module subclass