获取图库图像Android Xamarin的路径,并在System.Drawing.Bitmap("path")中使用它?



我尝试使用此代码

 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            if((requestCode == m) && (resultCode==Result.Ok)&&(data !=null))
            {
                string ni = GetPathToImage(data.Data);
               /// string img = GetPathToImage(data.Data);
                System.Drawing.Bitmap imge = new System.Drawing.Bitmap(ni);
            }

并使用此权限

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

但是我得到了这个错误

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'System.Drawing.Bitmap' threw an exception.

Android不使用System.Drawing.Bitmap它具有自己的图形API,您应该使用哪种Android.Graphics.Bitmap,因此在您的情况下,它将是这样的:

using Android.Provider;
using Android.Graphics;

然后在OnActivityResult方法中使用类似的东西:

 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
    {
        if((requestCode == m) && (resultCode==Result.Ok)&&(data !=null))
        {
           var  imageUri = data.Data;
           Bitmap bitmap = MediaStore.Images.Media.GetBitmap(this.ContentResolver, imageUri);
        }
    }

最新更新