2015-04-07 3 views
0

В андроиде im, который пытается сохранить изображение в локальном хранилище данных sqlite с помощью САМ ORM, а затем загрузить его в другое место. но изображение не будет отображаться, и я получаю:Изображение не будет отображаться при загрузке из базы данных sqlite.

image header:[5b 42 40 32 30 36 39 38], stream len = 12, read byte count = 8, valid byte count = 8, [[[email protected]] 

--- SkImageDecoder::Factory returned null 

Чтобы сохранить изображение:

  byte[] image = Utilities.getBytes(pImage); 
      Log.e("TAG", String.valueOf(image)); 
      Product product = new Product(pName, pBrand, pExpireDate, image); 
      product.save(); 

для загрузки:

 Log.e("TAG", String.valueOf(product1.image)); 
     Bitmap image = Utilities.getImage(product1.image); 
     pImage.setImageBitmap(image); 

Утилиты Класс:

public class Utilities { 
    public static byte[] getBytes(Bitmap bitmap) 
    { 
     ByteArrayOutputStream stream=new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.PNG,100, stream); 
     return stream.toByteArray(); 
    } 
    public static Bitmap getImage(byte[] image) 
    { 
     return BitmapFactory.decodeByteArray(image, 0, image.length); 
    } 

} 
+0

Попробуйте 'Utilities.getImage (Utilities.getBytes (img))' и посмотреть, хорошо ли работает – Turtle

+0

. Getbytes требуется à bitmap not a byte array – user2463163

+0

Я имею в виду, что эта строка используется и показывает, является ли выход нормальным растровым изображением. – Turtle

ответ

0

Оказывается, в Sugar ORM произошла ошибка, когда вы добавляете de pendency to gradle занимает последнюю версию, а не последнюю фиксацию. когда я включил последнюю транзакцию ORUROR ORAR в качестве проекта библиотеки, она была исправлена.