Android P实现Bitmap、Byte[]数组和Drawable之间的相互转换

Bitmap,byte[],Drawable相互转化 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的目的区域,用于绘图3、Bitmap位图,用于图的处理4、Matrix矩阵 立即下载

在安卓开发中,会经常用到将图片转化成byte[]数组保存或者传输,然后再将byte[]数组转换成图片格式,得到图片。

一、将图片转换成byte[]数组
public static byte[] bitmap2Bytes(Bitmap bitmap){
    if( null != bitmap ){
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);	//注意压缩png和jpg的格式和质量
        return baos.toByteArray();
    }
    return null;
}
二、将byte[]数组转换成bitmap
public static Bitmap bytes2Bitmap(byte[] bytes, BitmapFactory.Options opts){
    if ( null != opts ){
        return BitmapFactory.decodeByteArray(bytes, 0, bytes.length,opts);
    }else{
        return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
    }
}
三、将byte[]数组转换成图片文件并保存起来
private void bytes2ImageFile(byte[] bytes) {
    try {
    	//将文件保存在路径“/storage/emulated/0/demo.jpg”
        File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/demo.jpg");
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(bytes, 0, bytes.length);
        fos.flush();
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
四、将bitmap转换成drawable
public Drawable bitmap2Drawable(Bitmap bitmap){
	new BitmapDrawable(getResources(), bitmap)
}

关于静态方法使用getResources()报错的问题:Non-static method ‘getResources()’ cannot be referenced from a static context
解决:

private static Context mContext = null;
mContext = getActivity();
public Drawable bitmap2Drawable(Bitmap bitmap){
	new BitmapDrawable(mContext.getResources(), bitmap)
}
五、将drawable转换成bitmap
public Bitmap drawable2bitmap(Drawable drawable){
	new ((BitmapDrawable) drawable).getBitmap();
}
Arcgis栅格裁剪批处理工具 阅读详情

相关推荐

团队管理中最棘手的6个问题

研发团队的管理棘手问题,大多集中在。

xiaolyuh的专栏 746

BipMap.byte[],drawable相互转化

2 Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.icon); 2、Bitmap → byte[] 1 public byte[] Bitmap2Bytes(Bitmap bm) { 2 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 3

小妞妞 844

从零到一:手把手教你用SAM-BA工具完成嵌入式系统烧录

本文详细介绍了如何使用SAM-BA工具完成嵌入式系统烧录的全过程,包括环境搭建、硬件连接、Bootloader烧录以及完整系统镜像的烧录步骤。针对常见问题提供了实用的排查指南,并分享了批量烧录和自定义脚本的高级技巧,帮助开发者高效完成嵌入式系统开发。

weixin_42523792的博客 382

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

Drawable –> BitmapBitmap drawable2Bitmap(Drawable drawable) { if (drawable instanceof BitmapDrawable) { return ((BitmapDrawable) drawable).getBitmap(); } else if (draw

来啊 快活啊 1220

HALCON 20.11实战:5步搞定工业图像异常检测(附完整代码)

本文提供了一份基于HALCON 20.11的工业图像异常检测实战指南。通过五个核心步骤——环境准备、数据预处理、模型训练、推理解析与工程化部署,详细演示了如何利用深度学习技术,仅使用正常样本快速构建并优化金属表面划痕等缺陷的检测模型,并附有完整可运行的HDevelop代码,助力工程师实现高效、智能的工业视觉质检。

weixin_29243279的博客 140

摄像头模组选型避坑指南:如何根据Sensor和Lens参数匹配最佳组合

本文深入解析摄像头模组选型中Sensor与Lens的核心参数匹配要点。重点阐述了主光线角(CRA)匹配对边缘画质的关键影响,并提供了传感器尺寸、像素尺寸、焦距、光圈等参数的协同选型策略与实战避坑指南,帮助工程师在手机、安防、车载等不同应用场景下实现性能与成本的最佳平衡。

ee345的博客 618

Android中Bitmap和Drawable

一、相关概念 1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象 2、Canvas画布,绘图的目的区域,用于绘图 3、Bitmap位图,用于图的处理 4、Matrix矩阵 二、Bitmap 1、从资源中获取Bit...

dyh7077063的博客 388

ARS408毫米波雷达数据解析避坑指南:从硬件连接到Python处理

本文提供了ARS408毫米波雷达从硬件连接到Python数据处理的完整实战指南。针对串口通信不稳定、数据解析错误等常见问题,详细解析了硬件连接方案选择、串口数据高效读取策略、二进制协议解析的位操作技巧,并给出了坐标转换、目标跟踪及实时可视化的代码实现,帮助开发者快速搭建稳定的雷达数据处理流水线。

weixin_29091105的博客 149

Android 之 Bitmap

Bitmap在Android中指的是一张图片,可以是png,也可以是jpg等其他图片格式。一、Bitmap的基本加载Bitmap的加载离不开BitmapFactory类,关于Bitmap官方介绍Creates Bitmap objects from various sources, including files, streams, and byte-arrays.查看api,发现和描述的一样,B...

holiday_ob的专栏 416

将Keil中的变量数组导出

首先,写好导出数据的函数。

小柚子的博客 1952

华为OD机试 - 比赛的冠亚季军(Python/JS/C/C++ 双机位C卷 100分)

有个运动员,他们的id为0到N-1,他们的实力由一组整数表示。他们之间进行比赛,需要决出冠亚军。比赛的规则是0号和1号比赛,2号和3号比赛,以此类推,每一轮,相邻的运动员进行比赛,获N (3\leq N< 10000)胜的进入下一轮,实力值大的获胜,实力值相等的情况,id小的情况下获胜,轮空的直接进入下一轮。(0 <= 实力值 <= 10000000000)。输入一行N个数字代表N的运动员的实力值。输出冠亚季军的id,用空格隔开。

学Java,找哪吒 1587

java bitmap转换成byte数组_Bitmap转换成为byte数组

以下内容Sinfrancis版权所有,专注请注明来自 http://mdev.cc/dev通过ByteArrayOutputStream 转换public byte[] getBytesFromBitmap(Bitmap bmp) {try {int height = bmp.getHeight();int width = bmp.getWidth();int[] rgbdata = new i...

weixin_35829704的博客 1504

【PyGIS】ERA5降雨蒸散发数据预处理

ERA5-LAND降雨蒸散发数据预处理

```On Earth, Be Water, By Coding``` 3145

Android中Bitmap、Drawable、byte[]转换

public byte[] getBitmapByte(Bitmap bitmap){ ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); try { ...

dianwei5413的博客 90

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android id转化为bitmap,Android中Bitmap, Drawable, Byte,ID之间的转化

1. Bitmap 转化为 byteByteArrayOutputStream out = new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);byte[] array= out.toByteArray();2. byte转化为bitmapBitmap bitmap = BitmapFa...

weixin_32349577的博客 593

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android-Drawable、Bitmap、byte[]、资源文件相互转换

我们在Android的开发中,经常可以遇到图片的处理,当中,有很多是 Bitmap、Drawable、byte[]和资源文件它们直接相互转换。 今天就此总结一下: 1、资源文件转为Drawable 2、资源文件转为Bitmap 3、Bitmap转Drawable 4、Drawable转Bitmap 5、Bitmap转byte数组 6、Drawable转byte数组...

weixin_34138521的博客 538

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

android在处理一写图片资源的时候,会进行一些类型的转换:1 Drawable → Bitmap 的简单方法 1 ((BitmapDrawable)res.getDrawable(R.drawable.youricon)).getBitmap(); 2 Drawable → Bitmap 1 public static Bitmap drawableToBitmap(Dra...

weixin_30417487的博客 111

Android Bitmap与DrawAble与byte[]与InputStream之间的转换

public class FormatTools {      private static FormatTools tools = new FormatTools();        public static FormatTools getInstance() {          if (tools == null) {              tools = new FormatTo...

qq_33863614的博客 321

Android中Bitmap, Drawable, Byte,ID之间的转化

Android中Bitmap, Drawable, Byte,ID之间的转化 1. Bitmap 转化为 byte ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); byte[] array= out.toByteArray...

weixin_33726313的博客 94

BitMap、Drawable、inputStream及byte[] 互转

inputStream is=xxxx;                        BitmapDrawable bmpDraw=new BitmapDrawable(is);                        Bitmap bmp=bmpDraw.getBitmap();              Drawable →Bitmap              Bitma

天宝000专栏 415

Drawable和Bitmap转换

一、Bitmap转DrawableBitmap bm=xxx; //xxx根据你的情况获取BitmapDrawable bd=new BitmapDrawable(bm);因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。二、 Drawable转Bitmap转成Bitmap对象后,可以将Drawable对象通过Android的SK库存成一个字节输出流,最终还可以保...

weixin_30662849的博客 61

Drawable与 Bitmap 常用方法

Drawable 使用方法详解请看上篇文章. 文章地址:http://www.jianshu.com/p/d67cfc946f59 本章主要涉及Drawable 常用的使用方法,主要包含以下内容 从资源中获取Bitmap Bitmap ----&gt; byte[] byte[] ----&gt; Bitmap Bitmap 缩放方法 Drawable ----&gt; Bitmap ...

程序员Android 361

转换Bitmap对象

把一个View转换bitmap对象 1 public static Bitmap getViewBitmap(View view) { 2 view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), 3 View.MeasureSpec.ma...

weixin_30591551的博客 103

Android 图片相关

从asset文件夹中读取Bitmap //从asset文件夹中取文件 private Bitmap getImageFromAssetFile(String fileName){ Bitmap image = null; try{ AssetManager am = this.get...

weixin_30699741的博客 60

Android 使用SQLite存储以及读取Drawable对象

在进行Android开发过程中,我们经常会接触到Drawable对象,那么,若要使用数据库来进行存储及读取,该如何实现? 一、存储 //第一步,将Drawable对象转化为Bitmap对象 Bitmap bmp = (((BitmapDrawable)tmp.image).getBitmap()); //第二步,声明并创建一个输出字节流对象 ByteArrayOutputStream...

weixin_30674525的博客 92
上一篇: Android P检测USB插入拔出消息并基于libaums实现读取USB文件
下一篇: Android中关于Socket通信数据大小,内存缓冲区和数据可靠性的一点调查
sunxiaolin2016
博客等级 码龄10年 221粉丝 205原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunxiaolin2016

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值