我可以将字节数组转换为位图,但反向相同的过程会产生空值
I can convert a byte array to Bitmap but the same process in reverse produces a null
所以我有一个字节数组,我可以使用以下函数将其转换为位图:
private Bitmap getBitMapFromByte(byte[] imageByte) {
Bitmap bitmap = BitmapFactory.decodeByteArray(imageByte, 0, imageByte.length);
return bitmap;
}
这会产生正确的结果,我可以在调试查看器中预览返回的位图。
然后我有一些中间函数需要图像在字节数组中 byte[]
。所以我将位图转换为 byte[]
使用:
int byteCount = myBitmapImage.getAllocationByteCount();
ByteBuffer buffer = ByteBuffer.allocate(byteCount); //Create a new buffer
myBitmapImage.copyPixelsToBuffer(buffer); //Move the byte data to the buffer
byte[] myByte = buffer.array();
现在相同的字节数组立即转换回位图产生一个空值
Bitmap testBitmap= BitmapFactory.decodeByteArray(myByte, 0, myByte.length);
为什么字节数组会立即转换回位图并返回 null?
要将位图转换为字节数组,请使用以下代码
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] imageBytes = baos.toByteArray();
要将字节数组转换为位图,请使用以下代码
Bitmap bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, bitmapdata.length);
所以我有一个字节数组,我可以使用以下函数将其转换为位图:
private Bitmap getBitMapFromByte(byte[] imageByte) {
Bitmap bitmap = BitmapFactory.decodeByteArray(imageByte, 0, imageByte.length);
return bitmap;
}
这会产生正确的结果,我可以在调试查看器中预览返回的位图。
然后我有一些中间函数需要图像在字节数组中 byte[]
。所以我将位图转换为 byte[]
使用:
int byteCount = myBitmapImage.getAllocationByteCount();
ByteBuffer buffer = ByteBuffer.allocate(byteCount); //Create a new buffer
myBitmapImage.copyPixelsToBuffer(buffer); //Move the byte data to the buffer
byte[] myByte = buffer.array();
现在相同的字节数组立即转换回位图产生一个空值
Bitmap testBitmap= BitmapFactory.decodeByteArray(myByte, 0, myByte.length);
为什么字节数组会立即转换回位图并返回 null?
要将位图转换为字节数组,请使用以下代码
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] imageBytes = baos.toByteArray();
要将字节数组转换为位图,请使用以下代码
Bitmap bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, bitmapdata.length);