जवाबों:
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
image.getDrawable()
क्या वास्तव में आपको BitmapDrawable
(बचने के लिए IllegalCastExceptions
) कास्ट किया जा सकता है । यदि, उदाहरण के लिए, आप अपनी छवि में परतों का उपयोग करते हैं तो यह स्निपेट थोड़ा अलग होगा:Bitmap bitmap = ((BitmapDrawable)((LayerDrawable)image.getDrawable()).getDrawable(0)).getBitmap();
ImageView
सेट है URI
? imageView.setImageUri()
यह आपको एक Bitmap
से मिलेगा ImageView
। हालाँकि, यह वही बिटमैप ऑब्जेक्ट नहीं है जिसे आपने सेट किया है। यह एक नया है।
imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();
=== EDIT ===
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);
Bitmap bmap = Bitmap.createBitmap(mImageView.getDrawingCache());
नीचे कोड लिखें
ImageView yourImageView = (ImageView) findViewById(R.id.yourImageView);
Bitmap bitmap = ((BitmapDrawable)yourImageView.getDrawable()).getBitmap();
जो के लिए देख रहे हैं उन लोगों के लिए Kotlin
प्राप्त करने के लिए समाधान Bitmap
से ImageView
।
var bitmap = (image.drawable as BitmapDrawable).bitmap
यह कोड बेहतर है।
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);
छवि का बिटमैप प्राप्त करने का अन्य तरीका यह है:
Bitmap imagenAndroid = BitmapFactory.decodeResource(getResources(),R.drawable.jellybean_statue);
imageView.setImageBitmap(imagenAndroid);
इस कोड को आज़माएं:
Bitmap bitmap;
bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();