Retrieve bitmap from uri

前端 未结 7 1636
终归单人心
终归单人心 2021-01-01 17:06

I have included \'share via myApp\' option. I inserted following code in the receiving activity class.

    // Get the intent that started this activity
    I         


        
相关标签:
7条回答
  • 2021-01-01 17:36

    This is work for me

    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK)
    {
        Uri imageUri = data.getData();
        Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
    }
    }
    
    0 讨论(0)
  • 2021-01-01 17:43

    As you have already get the Uri. Now you have to pass that Uri in getBitmap() to get bitmap and use that bitmap.

    Uri imageUri = intent.getData();
    Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imageUri);
    Imageview my_img_view = (Imageview ) findViewById (R.id.my_img_view);
    my_img_view.setImageBitmap(bitmap);
    
    0 讨论(0)
  • 2021-01-01 17:48
    Retrive bitmap from uri.....
    
    public static Bitmap decodeUriToBitmap(Context mContext, Uri sendUri) {
            Bitmap getBitmap = null;
            try {
                InputStream image_stream;
                try {
                    image_stream = mContext.getContentResolver().openInputStream(sendUri);
                    getBitmap = BitmapFactory.decodeStream(image_stream);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return getBitmap;
        }
    
    0 讨论(0)
  • 2021-01-01 17:48

    You can try this. You can call setPic() in onActivityResult method. I have used this in an application to take photos an put it in an ImageView.

    private void setPic() {
    
        //currentPhotoPath contains path of image file.
        //visorFoto is a reference to an ImageView object.
        File file = new File(currentPhotoPath);
        Uri imageUri = Uri.fromFile(file);
        visorFoto.setImageURI(imageUri);
    
    }
    
    0 讨论(0)
  • 2021-01-01 17:51

    Once u have the Uri, you can use something like:-

    fun getBitmapFromUri(context: Context, uri: Uri): Bitmap? {
            
            var parcelFileDescriptor: ParcelFileDescriptor? = null
            return try {
                parcelFileDescriptor = context.contentResolver.openFileDescriptor(uri, "r")
                val fileDescriptor: FileDescriptor? = parcelFileDescriptor?.fileDescriptor
                val image = BitmapFactory.decodeFileDescriptor(fileDescriptor)
                parcelFileDescriptor?.close()
                image
            } catch (e: Exception) {
                //Log.e(TAG, "Failed to load image.", e)
                null
            } finally {
                try {
                    parcelFileDescriptor?.close()
                } catch (e: IOException) {
                    e.printStackTrace()
                    //Log.e(TAG, "Error closing ParcelFile Descriptor")
                }
            }
        }
    
    0 讨论(0)
  • 2021-01-01 17:51

    Please prefer this link.

    This is what you are looking for How to get Bitmap from an Uri?

    Try this it works for me:

    public static Bitmap getBitmapFromURL(String src) {
            try {
                System.out.printf("src", src);
                URL url = new URL(src);
                HttpURLConnection connection = (HttpURLConnection) url
                        .openConnection();
                connection.setDoInput(true);
                connection.connect();
                InputStream input = connection.getInputStream();
                Bitmap myBitmap = BitmapFactory.decodeStream(input);
                System.out.printf("Bitmap", "returned");
                myBitmap = Bitmap.createScaledBitmap(myBitmap, 100, 100, false);//This is only if u want to set the image size.
                return myBitmap;
            } catch (IOException e) {
                e.printStackTrace();
                System.out.printf("Exception", e.getMessage());
                return null;
            }
    
    0 讨论(0)
提交回复
热议问题