Я хочу сохранить изображение в SQLite DataBase
.
Я попытался сохранить его с помощью BLOB
и String
, в обоих случаях он сохраняет
изображение и может получить его, но когда я конвертирую его в Bitmap
, используя
BitmapFactory.decodeByteArray(...)
возвращает значение null.
Я использовал этот код, но он возвращает null
Bitmap bitmap = BitmapFactory.decodeByteArray(blob, 0, blob.length);
Просто попробуйте следующее:
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
, если изображение не может быть декодировано.
Ответ 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 для разных цветовых опций
mBitmaps
и minIndex
пожалуйста? предоставить полный ответ @ user924