Я пытаюсь создать приложение, в котором мне нужно хранить и извлекать изображение из базы данных SQLite. Я получаю программу для хранения изображения в виде байтового массива с использованием BLOB, и я также могу получить массив байтов, но при декодировании массива в растровое изображение BitmapFactory возвращает null. Пожалуйста помоги. Вот код, который я использую для декодирования массива.BitmapFactory return null
Cursor c=db.rawQuery("SELECT * FROM student WHERE name='"+"1"+"'", null);
if(c.moveToFirst())
{
byte[] outImage=c.getBlob(1);
Log.d("The out image is", String.valueOf(outImage));
Bitmap bitmap = BitmapFactory.decodeByteArray(outImage , 0, outImage .length);
iv.setImageBitmap(bitmap);
}
Это, как я вставив байт [] в базе данных:
if(requestCode==CAMERA_REQUEST && resultCode==RESULT_OK){
Bitmap yourImage = (Bitmap) data.getExtras().get("data");
// convert bitmap to byte
ByteArrayOutputStream stream = new ByteArrayOutputStream();
yourImage.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();
Log.e("output before conversion", imageInByte.toString());
// Inserting Contacts
Log.d("Insert: ", "Inserting ..");
db.execSQL("INSERT INTO student VALUES('"+"1"+"','"+imageInByte+"');");
Log.d("Success: ", "Image Saved");
}
LogCat читает что-то вроде этого
12-24 23:39:49.777: E/output before conversion(22523): [[email protected]
12-24 23:39:49.778: D/Insert:(22523): Inserting ..
12-24 23:39:49.840: D/Success:(22523): Image Saved
12-24 23:39:51.579: D/The out image is(22523): [[email protected]
12-24 23:39:51.580: D/skia(22523): --- SkImageDecoder::Factory returned null
Я не думаю, что вы можете получить массив байтов из бинарного так: http://stackoverflow.com/questions/6662432/easiest-way-to-convert-a- blob-in-a-byte-array –
«Я получаю программу для хранения изображения в виде байтового массива с использованием BLOB». Не делайте этого. Пусть файловая система управляет такими вещами. Сохраните изображение как обычный файл и сохраните только имя файла (и путь) в своей базе данных. –
@JASONGPETERSON спасибо за ссылку, это помогло! –