2015-06-08 5 views
5

нужно загрузить растровое изображение, то есть в файловой системе, в массив байтов, чтобы загрузить его, но должно быть:Picasso загрузить массив байтов

  • уменьшенного до 500x500 и в байтах [].
  • Асинхронный

я могу сделать это с скольжением

Glide.with(context) 
    .load(“/user/profile/photo/path”) 
    .asBitmap() 
    .toBytes() 
    .centerCrop() 
    .into(new SimpleTarget<byte[]>(250, 250) { 
     @Override 
     public void onResourceReady(byte[] data, GlideAnimation anim) { 
      // Post your bytes to a background thread and upload them here. 
     } 
    }); 

, но я не хочу, чтобы включить его только для этого. Любой способ сделать это с пикассо?

+0

'точечный рисунок, который находится в файле system'. ??? Как это возможно? Приведу пример. – greenapps

+0

@greenapps Я в той же ситуации. В моем случае я получаю изображение как строку (закодированный base64), и я хочу отобразить ее с помощью библиотеки (чтобы получить оптимизацию производительности). – lrn2prgrm

ответ

0

Попробуйте это решение

Bitmap bmp = intent.getExtras().get("data"); 
ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 
byte[] byteArray = stream.toByteArray(); 
+0

Но мне это нужно асинхронно, поэтому у Glide есть способ сделать это легко, и я спрашивал, есть ли у него пикассо. – Caipivara

+0

Изменение размера растрового изображения сначала «Растровое изображение b = BitmapFactory.decodeByteArray (imageAsBytes, 0, imageAsBytes.length) b = Bitmap.createScaledBitmap (b, 120, 120, false)); а затем преобразовать в байты –

+0

Закройте этот код в асинтете. вы можете найти для него хорошие учебники. http://programmerguru.com/android-tutorial/android-asynctask-example/ –

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