2015-06-08 12 views
5

devo caricare una bitmap, cioè nel file system, in byte per caricarlo ma deve essere:Picasso per caricare byte

  • ridimensionato a 500x500 e in byte [].
  • Async

posso farlo con glide

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. 
     } 
    }); 

ma io non voler includere solo per questo. Un modo per farlo con Picasso?

+0

'una bitmap, cioè nel file system'. ??? Come è possibile? Per favore, fai un esempio. – greenapps

+0

@greenapps Sono nella stessa situazione. Nel mio caso ottengo un'immagine come stringa (codificata Base64) e voglio visualizzarla con una libreria (per ottenere ottimizzazioni delle prestazioni). – lrn2prgrm

risposta

0

provare questa soluzione

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

Ma ho bisogno di async, quindi Glide ha un modo per farlo in modo semplice e mi chiedevo se ce n'è uno con Picasso. – Caipivara

+0

Ridimensiona prima la bitmap "Bitmap b = BitmapFactory.decodeByteArray (imageAsBytes, 0, imageAsBytes.length) b = Bitmap.createScaledBitmap (b, 120, 120, false));" e quindi convertire in byte –

+0

Racchiudere questo codice in un asynctask. qui puoi trovare buoni tutorial. http://programmerguru.com/android-tutorial/android-asynctask-example/ –

Problemi correlati