web-dev-qa-db-fra.com

Obtenir le bitmap d'ImageView dans Android L

Je veux obtenir Bitmap de ImageView. J'ai utilisé le code suivant, mais getDrawable() renvoie null. Comment obtenir un Bitmap entier à partir de ImageView.

Bitmap bitmap;
if (mImageViewer.getDrawable() instanceof BitmapDrawable) {
    bitmap = ((BitmapDrawable) mImageViewer.getDrawable()).getBitmap();
} else {
    Drawable d = mImageViewer.getDrawable();
    bitmap = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    d.draw(canvas);
}
storeImage(bitmap,"final.jpeg");
28
Utkarsh Srivastav

Essaye ça:

imageView.invalidate();
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
48
Pankaj Arora

Selon cette réponse , faites-le comme ceci:

imageView.buildDrawingCache();
Bitmap bmap = imageView.getDrawingCache();
18
ToYonos

Si vous essayez d’obtenir une image bitmap à partir de l’image chargée Glide, cela vous aidera.

 Drawable dr = ((ImageView) imView).getDrawable();
        Bitmap bmp =  ((GlideBitmapDrawable)dr.getCurrent()).getBitmap();
4
Ness Tyagi

Prenez une photo de ImagView et convertissez-la en chaîne à envoyer au serveur.

    ImageView   ivImage1 = (ImageView ) findViewById(R.id.img_add1_send );


                    getStringImage( ( ( BitmapDrawable ) ivImage1.getDrawable( ) ).getBitmap( ) ),



public String getStringImage(Bitmap bm){
    ByteArrayOutputStream ba=new ByteArrayOutputStream(  );
    bm.compress( Bitmap.CompressFormat.PNG,90,ba );
    byte[] by=ba.toByteArray();
    String encod= Base64.encodeToString( by,Base64.DEFAULT );
    return encod;
}
0
younes