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
答案 0 :(得分:0)
我相信这两个函数可以做不同的事情并期望不同的数据。
copyPixelsFromBuffer()
用于将原始像素信息导入已配置大小和像素深度的现有位图图像。
BitmapFactory.decodeByteArray()
用于从包含完整位图文件数据的字节数组创建位图,而不仅仅是原始像素。这就是为什么函数不采用(或需要)大小和像素深度信息的原因,因为它从传递给它的字节中获取所有信息。