如何将字节数组转换为位图
我想在SQLite DataBase
存储图像。 我试图存储它使用BLOB
和String
,在这两种情况下,它存储图像,可以检索它,但是当我把它转换为Bitmap
使用BitmapFactory.decodeByteArray(...)
它返回null。
我已经使用这个代码,但是它返回null
Bitmap bitmap = BitmapFactory.decodeByteArray(blob, 0, blob.length);
试试这个:
Bitmap bitmap = BitmapFactory.decodeFile("/pathhttp://img.dovov.comimage.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
。
Uttam的答案不适合我。 当我做的时候我只是空了:
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata, 0, bitmapdata.length);
在我的情况下,位图数据只有像素的缓冲区,所以函数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(mBitmaps.get(minIndex).buffer); bmp.copyPixelsFromBuffer(buffer);
查看https://developer.android.com/reference/android/graphics/Bitmap.Config.html以获取不同的颜色选项;