2013-10-10 3 views
0

Я пытаюсь преобразовать массив байтов в растровое изображение, чтобы отобразить изображение в приложении Android. Но при преобразовании возвращается нулевое значение. Я использовал следующий код:ByteArray to Bitmap дает null

operations = new DataBaseOperations(); 
byte image[] = operations.fetchimage(); // gets byte array from the database   
BitmapFactory.Options options = new BitmapFactory.Options(); 
Bitmap bitmap = BitmapFactory.decodeByteArray(image, 0, image.length, options); 

Здесь bitmap имеет нулевое значение, то почему?

+0

у вас есть image.length правильно. ?? – Riser

+0

Проверьте, является ли изображение [] нулевым или нет. –

+0

У меня была такая же проблема. Это сработало для меня: https://stackoverflow.com/a/40882445/4539359 – Julian

ответ

4

Пробуйте эту ссылку. Это позволит решить вашу проблему

How to convert byte array to Bitmap

или просто проверить этот код

Bitmap bitmap = BitmapFactory.decodeFile("/path/images.jpg"); 
ByteArrayOutputStream blob = new ByteArrayOutputStream(); 
bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, blob); 
byte[] bitmapdata = blob.toByteArray(); 

// если BitmapData является массив байт, то получение растровый идет как этот

Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length); 

Возвращает Расшифрованный bitmap или null, если изображение невозможно декодировать.

+0

Я получаю null. Как его декодировать каким-либо другим способом? Если изображение невозможно декодировать. Является ли это возможным?? – JUL2791