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()
用于将原始像素信息导入到已配置大小和像素深度的现有位图图像中。
BitmapFactory.decodeByteArray()
用于从包含完整位图文件数据(而不仅仅是原始像素)的字节数组创建位图。这就是为什么该函数不获取(或不需要)大小和像素深度信息,因为它从传递给它的字节中获取所有信息。
关于android - CopyPixelsFromBuffer 有效。但解码其 ByteArray 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30874223/