2016-04-11 4 views
3

Привет, ребята, я пытаюсь реализовать Converting bitmap to byteArray android. Мне нужно преобразовать мой байт [] в растровое изображение без сжатия. Но каждый раз, когда я получаю весь черный образ? Есть идеи, как это сделать? Что им делатьБайт-массив для преобразования растровых изображений

  int bytes = bmp.getByteCount(); 
      ByteBuffer buffer = ByteBuffer.allocate(bytes); 
      bmp.copyPixelsToBuffer(buffer); 
      byte[] resarray = buffer.array(); 

А вот как я получить его в растровый

  BitmapFactory.Options options = new 
      BitmapFactory.Options(); 
      options.inScaled = false; 
      Bitmap bmp = BitmapFactory.decodeByteArray(barray,0, barray.length,options); 
      ImageView imageView = (ImageView) findViewById(R.id.resdetayimage); 
      imageView.setImageBitmap(bmp);` 

EDIT Bitmap заводского декодировании только сжатые вещи. Вот почему мой код не работает. Так что мне нужно что-то вроде.

Bitmap.Config configBmp = Bitmap.Config.valueOf(bitmap.getConfig().name()); 
    Bitmap bitmap_tmp = Bitmap.createBitmap(width, height, configBmp); 
    ByteBuffer buffer = ByteBuffer.wrap(byteArray); 
    bitmap_tmp.copyPixelsFromBuffer(buffer); 

но код все еще не работает. Итак, как я могу реализовать это? Я получил байт [] от намерения.

+0

Я уверен, но вы можете попробовать создать растровое изображение i.e Bitmap X = Bitmap.createBitmap (resarray, bmp.getWidth(), bmp.getHeight(), bmpgetConfig()); – dex

+0

Вы должны сделать обратную сторону copyPixelsToBuffer(). Итак, есть ли пиксели чтения из буфера или что-то в этом роде? DecodeByteArray ожидает файл jpg в этом массиве. Не пиксели. Я думаю, что теперь он возвращает null. Пожалуйста, проверьте. Так что не «черное изображение». – greenapps

+0

Его не возвращающий нуль уже проверен –

ответ

0

Преобразование растрового изображения в ByteArray

ByteArrayOutputStream bStream = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.PNG, 90, bStream); 
byte[] mByteArray = bStream.toByteArray(); 

Преобразование в растровое изображение ByteArray

Bitmap bitmap = BitmapFactory.decodeByteArray(mByteArray , 0, mByteArray.length); 
+1

Я не сжимаю –

0

Использование copyPixelsFromBuffer() как это является обратным copyPixelsToBuffer().

Смежные вопросы