2010-04-26 5 views
17

Моя проблема такова: Я сохранил несколько снимков в базе данных sqlite, используя формат blob, который, похоже, работает нормально. теперь я хочу, чтобы мои фотографии выходили из БД, а затем возвращались в образы ... чтобы усложнить вопрос, их формат является переменным (png, jpg, может быть, что-то еще, im not sure) Есть ли способ сделать это в андроиде?byte [] to image android

спасибо

ответ

47

BitmapFactory.decodeByteArray() Используйте метод:

byte[] blob=c.getBlob("yourcolumnname"); 
Bitmap bmp=BitmapFactory.decodeByteArray(blob,0,blob.length); 
ImageView image=new ImageView(this); 
image.setImageBitmap(bmp); 

Посмотрите на this нить тоже.

+0

это именно то, что я сделал, но я использовал drawable, поэтому я добавил актерский состав, но я не думаю, что мне это нужно. Спасибо за помощь, ребята. спасибо за подробное объяснение здесь – Sephy

+2

однако, я получаю хороший «возврат null» из BitmapFactory ... – Sephy

+0

decodeByteArray метод возвращает null, если изображение не может быть декодировано; проверьте свой код, хранящийся в db. – systempuntoout

4

Использование BitmapFactory.decodeByteArray().

+0

thx для подсказки, я получу более пристальный взгляд и вернусь к вам, если не найду. – Sephy

2

Я предпочитаю напрямую преобразовывать массив байтов в Drawable. Это лучший формат для Android. Растровые изображения генерировали утечки в прошлом.

Drawable d = Drawable.createFromStream(new ByteArrayInputStream(ARRAY_BYTES), null);