[英]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.