Answers:
尝试一下:
Bitmap bitmap = BitmapFactory.decodeFile("/path/images/image.jpg");
ByteArrayOutputStream blob = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0 /* Ignored for PNGs */, blob);
byte[] bitmapdata = blob.toByteArray();
如果bitmapdata
是字节数组,则按以下Bitmap
方式完成:
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata, 0, bitmapdata.length);
返回已解码Bitmap
,或者返回null
无法解码的图像。
乌塔姆的答案对我没有用。当我这样做时,我只是空了:
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata, 0, bitmapdata.length);
在我的情况下,bitmapdata仅具有像素的缓冲区,因此,函数decodeByteArray不可能猜测使用的是宽度,高度和颜色位。所以我尝试了一下,它起作用了:
//Create bitmap with width, height, and 4 bytes color (RGBA)
Bitmap bmp = Bitmap.createBitmap(imageWidth, imageHeight, Bitmap.Config.ARGB_8888);
ByteBuffer buffer = ByteBuffer.wrap(bitmapdata);
bmp.copyPixelsFromBuffer(buffer);
检查https://developer.android.com/reference/android/graphics/Bitmap.Config.html以获得不同的颜色选项