【问题标题】:Get bitmap from URI从 URI 获取位图
【发布时间】:2021-06-05 18:51:37
【问题描述】:

我正在从图库中选择图片。
这是我正在使用的代码

            Intent intent = new Intent();
            intent.SetType("image/*");
            intent.SetAction(Intent.ActionGetContent);
            this.StartActivityForResult(Intent.CreateChooser(intent,
                    "Select Picture"), SelectPicture);

我在 Activty 结果的data.DataString content://media/external/images/media/11 中得到这个字符串..
这不是所选图像的完整路径。但最终我想将其转换为位图。

在活动结果中..

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)

Bitmap bitmap = (Android.Graphics.Bitmap)data.Extras.Get("data");

给出空错误。

当我从相机捕获图像时,它工作正常并且我得到位图,而不是从图库中选择图像。我正在使用的代码:

 var cameraIntent = new Intent(MediaStore.ActionImageCapture);
 cameraIntent.PutExtra(MediaStore.ExtraOutput, imageUri);
 this.StartActivityForResult(cameraIntent, TakePicture);

【问题讨论】:

    标签: xamarin.android


    【解决方案1】:

    要从 Uri 转换为位图,请遵循以下示例:convertUriToBitmap。 在 monodroid 中代码如下:

    private Android.Graphics.Bitmap NGetBitmap(Android.Net.Uri uriImage)
        {
            Android.Graphics.Bitmap mBitmap = null;
             mBitmap = Android.Provider.MediaStore.Images.Media.GetBitmap(this.ContentResolver, uriImage);
             return mBitmap;
        }
    

    【讨论】:

      【解决方案2】:
      【解决方案3】:
      public override void OnActivityResult(int requestCode, int resultCode, Intent data)
      {
          base.OnActivityResult(requestCode, resultCode, data);
      
          Uri uri = data.Data;
      }
      

      【讨论】:

      • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
      【解决方案4】:

      安卓

      val bitmap = BitmapFactory.decodeStream(contentResolver.openInputStream(uri))

      Xamarin Android

      var ins = context.ContentResolver.OpenInputStream(uri);
      Bitmap bitamp = BitmapFactory.DecodeStream(ins);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-24
        • 2011-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多