CopyPixelsFromBuffer有效。但解码其ByteArray会返回null

时间:2015-06-16 17:25:17

标签: android bitmap bytearray bytebuffer

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

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

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

1 个答案:

答案 0 :(得分:0)

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

  

copyPixelsFromBuffer()

用于将原始像素信息导入已配置大小和像素深度的现有位图图像

  

BitmapFactory.decodeByteArray()

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