Android Bitmap 和 ByteArray的互相转换_arraytobitmapwithencode-程序员宅基地

技术标签: 学习资料  

原文地址:https://www.cnblogs.com/psklf/p/5889978.html

Android Bitmap 和 ByteArray的互相转换

移动平台图像处理,需要将图像传给native处理,如何传递?将bitmap转换成一个 byte[] 方便传递也方便cpp代码直接处理图像内容。

Bitmap -> byte[]

创建一个ByteBuffer用于接收数据。首先需要爲buffer开辟内存空间,内存空间的大小就是图片的大小。将bitmap的数据写入buffer,然后调用buffer的 array() 方法得到array.

        int bytes = bmp.getByteCount();

        ByteBuffer buf = ByteBuffer.allocate(bytes);
        bmp.copyPixelsToBuffer(buf);

        byte[] byteArray = buf.array();

byte[] -> Bitmap

这个步骤让我花费了更多时间。之前看到有人說可以使用

Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata, 0, bitmapdata.length); 

来根据ByteArray直接得到bitmap,但是我使用中出现问题。想想其实很简单,就这么一行语句,一个bitmap对象必须的参数都没有设置,怎么就可能得到正常的bitmap对象?这个方法生效的前提是,提供的bitmapdata是包含了图像参数的,而非简单的RGBA数据。而我现在得到的仅仅是RGBA数据,所以需要先得到一个bitmap实例,再往里填数据。需要将得到的array再变回buffer,使用buffer的 wrap 方法,包装数组得到buffer.

            // use Bitmap.Config.ARGB_8888 instead of type is OK
            Bitmap stitchBmp = Bitmap.createBitmap(width, height, type);

            stitchBmp.copyPixelsFromBuffer(ByteBuffer.wrap(byteArray));

            imageView.setImageBitmap(stitchBmp);



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chenhuakang/article/details/79741926

智能推荐

FFmpeg编译with NVIDIA硬件加速_ffmpeg video codec sdk driver-程序员宅基地

文章浏览阅读4.2k次。FFmpeg编译with NVDIA硬件加速FFmpeg编译with NVDIA硬件加速安装NVIDIA显卡驱动下载对应显卡型号驱动卸载旧的驱动安装驱动安装CUDA安装NVIDIA VIDEO CODEC SDK编译FFmpeg参考资料安装NVIDIA显卡驱动下载对应显卡型号驱动lspci | grep VGAhttps://www...._ffmpeg video codec sdk driver

unity cloud_共同创建:Unity和Google Cloud-程序员宅基地

文章浏览阅读251次。unity cloudAt Unite Berlin, we announced an alliance with Google Cloud to make it easier for you to create connected games. Since then, we’ve been hard at work! Now, together with Google Cloud, we wa..._unity cloud

记录viewer.js动态更新图片导致无法预览_viewjs 图片预览 框架调用失效-程序员宅基地

文章浏览阅读1k次。前言问题:viewer只能初始化一次,导致用ajax添加了新的图片无法预览解决:viewer.update();【当源图像更改(添加、删除或排序)时更新查看器实例。】1、HTML<ul id="picView"></ul>2、实现代码 let viewer; $(function () { //初始化 viewer = new Viewer(document.getElementById('picView'))_viewjs 图片预览 框架调用失效

重新安装Mysql,及mysql workbench遇到的所有麻烦(解决1 服务无法启动没有报告任何错误的问题 解决2:登录不进去:8.0重置密码;解决三,workbench打不开鼠标就转了两下_mysql workbench 鼠标错乱-程序员宅基地

文章浏览阅读1.4k次。卸载重新下载安装mysql先声明 我下载的是mysql8.0版本,不同版本操作指令不同在重新安装的过程中遇到了以下问题:MySQL 服务正在启动 . MySQL 服务无法启动. 服务没有报告任何错误.的问题的解决登不进,重置密码注意是8.0之后版本的方法5.0之后的有其他方法workbench打不开鼠标只转了两下1,先卸载workbench2,到这个网址https://support..._mysql workbench 鼠标错乱

[SCOI2010]序列操作 题解-程序员宅基地

文章浏览阅读288次。[SCOI2010]序列操作 题解前言这道题很经典,特别是对于线段树的这个板块来说,完成后对线段树的理解会上一个档次。但是说实话,就算知道了这道题的思路,想要完成也很难,因为这个代码实在是太长了,而且线段树维护的变量态度多,很容易把人写晕,所以我就来发这一发题解,点明其中易错的几个点(尤其是我错的),以及每一个函数的详细解答,希望dalao们勿喷。提示如果想完成这道题,那么你至少要会以下操..._[scoi2010]序列操作

android自动化测试之MonkeyRunner--环境搭建(一)_android monkeyrunner python-程序员宅基地

文章浏览阅读2.5k次。android自动化测试之MonkeyRunner一、Android自动化测试之环境搭建1.1 Android-sdk介绍SDK(Software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。Android是 google公司推出的手机开发平台。Android-sd_android monkeyrunner python

随便推点

css美化表格和表单样式_css美化增删改查界面-程序员宅基地

文章浏览阅读7.1k次,点赞7次,收藏30次。Css美化表格和表单样式表格创建默认是没有边框的,我们要用boder属性去设置表格的边框 表格基本样式表格边框合并boder-collapse在显示表格时,通常来说表格都是有边框的,边框的作用:主要用来界定不同的数据。当表格的border属性的值大于0的时候,边框才显示。当小于等于0,边框不会出现。当边框出现以后,我们可以采用border属性,以及border-collapse..._css美化增删改查界面

LaTex 双栏模板下单栏公式_latex双栏怎么创建单栏的公式附录-程序员宅基地

文章浏览阅读6.9k次,点赞2次,收藏12次。?待更_latex双栏怎么创建单栏的公式附录

3D物体检测(二)_类别无关的 物体3d关键点检测-程序员宅基地

文章浏览阅读739次。title: 3D物体检测(二)date: 2020-02-22 17:09:40categories:3D物体检测tags:3D物体检测点云总结一下在bilibili上看到的基于点云场景的三维物体检测算法及应用,是香港中文大学博士生所作报告有兴趣的也可以去看看这个视频。这一部分主要总结一下报告主要的三个论文:PointRCNN、Part-A^2、PV-RCNN想看更多相..._类别无关的 物体3d关键点检测

2018函授英语计算机统考,函授本科需要统考英语和计算机吗-程序员宅基地

文章浏览阅读303次。函授本科也就是通过成人高考中的函授的学习方式获取本科学历,而函授也是我国成人教育中成人高考的一种学习方式,其主要通过寒假、暑假以及国家的法定节假日由学校安排学员进行统一的面授和考试,而平时学员主要靠自学为主,通过信函的方式与老师进行交流。因为函授本科相对便捷的学习方式,使得很多的成年人都报考函授提升本科学历。但是一般成人教育都要参加统考,函授本科需要统考英语和计算机吗?对于一般的函授本科学员是需要..._函授计算机英语

VTK 学习----VTK对象-算法类-vtkPolyDataAlgorithm-程序员宅基地

文章浏览阅读5.9k次,点赞5次,收藏39次。4.5.6 vtkPolyDataAlgorithmvtkAdaptiveSubdivisionFilter基于边缘和/或面积度量细分三角形。vtkAdaptiveSubdivisionFilter是一个基于最大边长和/或三角形区域细分三角形的滤镜。通过指定任何给定三角形可能具有的最大边长和/或三角形区域来控制三角形细分。细分继续进行,直到满足其标准。请注意,使用过小的标准值会产生巨..._vtkpolydataalgorithm

matlab4fsk软件解调代码,4fsk调制与解调基于Verilog HDL语言-程序员宅基地

文章浏览阅读725次。【实例简介】4fsk调制与解调基于Verilog HDL语言【实例截图】【核心代码】4fsk调制与解调基于VerilogHDL语言└── kechengsheji├── dac0832(10).cnf├── dac0832(11).cnf├── dac0832(12).cnf├── dac0832(13).cnf├── dac0832(15).cnf├── dac0832(1).cnf├── da..._4fsk开源代码

推荐文章

热门文章

相关标签