Pertanyaan Dapatkan Bitmap dari ImageView di Android L


Saya ingin mendapatkannya Bitmap dari ImageView. Saya telah menggunakan kode berikut, tetapi getDrawable() mengembalikan null. Bagaimana cara menjadi utuh Bitmap dari 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");

22
2017-11-11 13:14


asal


Jawaban:


Coba ini:

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

38
2017-11-20 04:44



Jika Anda hanya ingin Bitmap dari ImageView kode berikut dapat bekerja untuk Anda: -

Bitmap bm=((BitmapDrawable)imageView.getDrawable()).getBitmap();

Cobalah memiliki gambar di semua folder kualitas yang dapat digambar (drawable-hdpi / drawable-ldpi, dll.)

Bisa jadi emulator atau perangkat yang Anda gunakan memiliki kerapatan yang berbeda dan sedang mencoba untuk menarik gambar dari folder lain.

Jika Anda menggunakan ekstensi di gambar Anda selain .png, .jpg, atau .gif, Ini mungkin tidak mengenali jenis ekstensi lainnya. http://developer.android.com/guide/topics/resources/drawable-resource.html


18
2017-11-20 01:56



Menurut jawaban ini, lakukan saja seperti ini:

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

18
2017-11-11 13:21



Jika Anda mencoba untuk mendapatkan bitmap dari Glide load image maka ini akan membantu Anda

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

4
2017-09-06 13:04



Ambil gambar ImagView dan ubah menjadi string untuk dikirim ke server

    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
2017-08-22 17:30