বিটম্যাপটি ইমেজভিউতে সংযুক্ত করুন


314

প্রদত্ত

ImageView image = R.findViewById(R.id.imageView);
image.setImageBitmap(someBitmap);

বিটম্যাপটি পুনরুদ্ধার করা সম্ভব?


1
হ্যাঁ এটি সম্ভব, আপনি যখন ছবিটিতে ক্লিক করেন আমরা তা পেয়ে যাব যদি আপনি এই প্রয়োজনীয়তাটি চান তবে আমাকে জানান।
— রাজা রেডি পোলাম রেডি

উত্তর:


809
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();

34
আপনার image.getDrawable()আসলে BitmapDrawable(এড়ানোর জন্য IllegalCastExceptions) কাস্ট করা যেতে পারে কিনা তা পরীক্ষা করে যত্নবান হন । উদাহরণস্বরূপ, আপনি যদি নিজের ছবিতে স্তরগুলি ব্যবহার করেন তবে এই স্নিপেটটি কিছুটা আলাদা হবে:Bitmap bitmap = ((BitmapDrawable)((LayerDrawable)image.getDrawable()).getDrawable(0)).getBitmap();
— অ্যালেক্স সেমেনিয়ুক

2
এটি, মাঝে মধ্যে কিছু বা সমস্ত কালো পিক্সেল সহ একটি বিটম্যাপ ফিরে আসবে।

2
আপনি অঙ্কনযোগ্য / চিত্র প্রদর্শনের জন্য আবেদন করা থাকলে এটি আসল বিটম্যাপ বা ফিল্টার করা বিটম্যাপটি ফিরিয়ে আনবে না।
— প্রিয়ধ্রুভ

4
চিত্রটি যদি ImageViewসেট করা থাকে তবে এটি কি কাজ করবে URI? imageView.setImageUri()
— হেন্দ্র অ্যাংগ্রিয়ান

1
@ প্রানীথকুমার এটি আমার দৃশ্যে কাজ করে। এই দুর্দান্ত উত্তরটির জন্য থাম্বস আপ!
— হেন্দ্র অ্যাংগ্রিয়ান

46

এটি আপনাকে একটি Bitmapথেকে পাবেন ImageView। যদিও এটি আপনার সেট করা বিটম্যাপের একই জিনিস নয়। এটি একটি নতুন।

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

=== সম্পাদনা ===

 imageView.setDrawingCacheEnabled(true);
 imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
                   MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
 imageView.layout(0, 0, 
                  imageView.getMeasuredWidth(), imageView.getMeasuredHeight()); 
 imageView.buildDrawingCache(true);
 Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache());
 imageView.setDrawingCacheEnabled(false);

যখন এটি "কাজ করে না", তখন কী ঘটে? এটি নাল ফিরে বা ব্যতিক্রম নিক্ষেপ বা কি?
— সরোয়ার এরফান

2
এটি শূন্য ফিরে। কখনও কখনও পৃষ্ঠাটি এটি প্রদর্শিত হওয়ার জন্য আমাকে পুনরায় লোড করতে হয়।
— লেবু

3
আমাকে একটি নাল পয়েন্টার দেয়। :( এই লাইনে:Bitmap bmap = Bitmap.createBitmap(mImageView.getDrawingCache());
— Azurespot

অঙ্কনক্যাচি কোটলিনে অবহিত করা হয়েছে
— রাজু আপনার পেপ

3

কোড নীচে লিখুন

ImageView yourImageView = (ImageView) findViewById(R.id.yourImageView);
Bitmap bitmap = ((BitmapDrawable)yourImageView.getDrawable()).getBitmap();

আমি পেয়েছি অ্যাপকম্প্যাটআইজেজভিউটি এন্ড্রয়েড.গ্রাফিক্স.ড্রেবলযোগ্য.বিটম্যাপড্রেইবল
— বিলিজোকার

1

কে খুঁজছে তাদের জন্য Kotlinপেতে সমাধান Bitmapথেকে ImageView।

var bitmap = (image.drawable as BitmapDrawable).bitmap

আমি পেয়েছি অ্যাপকম্প্যাটআইজেজভিউটি এন্ড্রয়েড.গ্রাফিক্স.ড্রেবলযোগ্য.বিটম্যাপড্রেইবল
— বিলিজোকার

0

এই কোডটি আরও ভাল।

public static  byte[] getByteArrayFromImageView(ImageView imageView)
    {
        BitmapDrawable bitmapDrawable = ((BitmapDrawable) imageView.getDrawable());
        Bitmap bitmap;
        if(bitmapDrawable==null){
            imageView.buildDrawingCache();
            bitmap = imageView.getDrawingCache();
            imageView.buildDrawingCache(false);
        }else
        {
            bitmap = bitmapDrawable .getBitmap();
        }
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        return stream.toByteArray();
    }

এটি কি ইমেজভিউ.জেটড্রেইবল (); -> মানে ছবি আঁকার ফোল্ডার থেকে পাওয়া? সিএমআইআইডাব্লু .... @ আহমাদ
— গুমুরুহ

না, আপনি এই কোডটি ব্যবহার করতে পারেন। Bitmap imagenAndroid = BitmapFactory.decodeResource(getResources(),R.drawable.jellybean_statue);
— আহমদ আগজাদেহে


-10

এই কোড চেষ্টা করুন:

Bitmap bitmap;
bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();

6
আপনি কি আরস্লানের গৃহীত উত্তরের উপর বর্ধন বর্ণনা করতে পারবেন?
— বমি

আপনার উত্তর কেন তার সমস্যার সমাধান করে তা আপনি আরও ভালভাবে ব্যাখ্যা করতে চাইবেন
— মুহাম্মদ রেফায়াত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.