繁体   English   中英

CopyPixelsFromBuffer起作用。 但是解码其ByteArray返回null

[英]CopyPixelsFromBuffer works. But decode its ByteArray returns null

Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
bitmap.copyPixelsFromBuffer(byteBuffer);
// bitmap is valid and can be displayed

我从有效的byteBuffer中提取了ByteArray。 但是当我尝试解码ByteArray时它返回null。 有人可以解释为什么会这样。

byteBuffer.rewind();
byteBuffer.get(byteArray, 0, byteBuffer.capacity());
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0 , byteArray.length);
// returns null

我相信这两个函数可以做不同的事情,并且期望得到不同的数据。

copyPixelsFromBuffer()

用于将原始像素信息导入现有的Bitmap图像中,该图像已经配置了大小和像素深度

BitmapFactory.decodeByteArray()

用于从包含完整位图文件数据的字节数组创建位图,而不仅仅是原始像素。 这就是为什么该函数不需要(或不需要)大小和像素深度信息的原因,因为它从传递给它的字节中获取所有信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM