C# 我正在做一个Xamarin跨平台项目,可以';t在我的UI上显示uri图像。我总是得到一个错误,说位图太大

C# 我正在做一个Xamarin跨平台项目,可以';t在我的UI上显示uri图像。我总是得到一个错误,说位图太大,c#,xaml,xamarin,C#,Xaml,Xamarin,我正在为学校做一个Xamarin项目,无法在我的用户界面上显示任何uri图像。我总是在调试窗口中遇到此错误: java.lang.RuntimeException:画布:试图绘制太大(241238816字节)的位图 这是跨平台的,所以我不能只设置高度和宽度要求,Xamarin为我做这项工作。我不能从Nuget下载毕加索或FFImageLoading并传递一些参数,因为这是Android和iOS。顺便说一下,没有UWP。只有Android和iOS。我在Github上看到了一些调整图像大小的功能,但

我正在为学校做一个Xamarin项目,无法在我的用户界面上显示任何uri图像。我总是在调试窗口中遇到此错误:

java.lang.RuntimeException:画布:试图绘制太大(241238816字节)的位图

这是跨平台的,所以我不能只设置高度和宽度要求,Xamarin为我做这项工作。我不能从Nuget下载毕加索或FFImageLoading并传递一些参数,因为这是Android和iOS。顺便说一下,没有UWP。只有Android和iOS。我在Github上看到了一些调整图像大小的功能,但这是针对图像文件的,而不是uri的。首先将uri映像保存为文件不起作用,因为它们中的大多数都是200+MB!我需要将“Image”源传递给ImageSource.FromUri(newuri(myuriwanttopass)); 我知道我可能需要编写代码来传递uri字符串、高度请求、宽度请求。制作一个按比例缩小的新位图。然后加载它,然后以某种方式将图像源设置为新的缩小位图。我将复制并粘贴页面后端的代码。它被称为PlantProfilePage.xaml.cs,这些代码应该足以找到答案

protected override void OnAppearing()
        {
            base.OnAppearing();
            FamilyName.BindingContext = this;
            GenusName.BindingContext = this;
            ScientificName.BindingContext = this;
            //PlantPicture.Source = ImageSource.FromUri(new Uri(uriList[0].ToString()));
            string url = "https://collections.nmnh.si.edu/media/index.php?irn=11986034";
            //string encodedURL = Uri.EscapeDataString(url);
            try
            {
                WebRequest request = WebRequest.Create(url);
                request.BeginGetResponse((IAsyncResult arg) =>
                {
                    Stream stream = request.EndGetResponse(arg).GetResponseStream();
                    ImageSource imageSource = ImageSource.FromStream(() => stream);
                    Device.BeginInvokeOnMainThread(() => PlantPicture.Source = imageSource);
                }, null);

                //PlantPicture.Source = UriImageSource.FromUri(new Uri(url));
            }
            catch (UriFormatException ufe)
            {
                Debug.WriteLine("Uri didn't work: " + ufe);
            }
我需要将我正在使用的uri字符串的大小从数百兆字节调整为不会导致项目出现错误的大小:

java.lang.RuntimeException:画布:试图绘制太大(241238816字节)的位图


这应该对Android和iOS都有效。

图像加载工作正常。它将在Android和iPhone屏幕上显示缩小的uri图像。

FFImageLoading与XF一起工作-或者,我建议使用类似于我在代码部分硬编码的url的内容,这正是我试图显示的内容。一旦我把它显示在UI上,我将对它进行注释,然后返回到显示我正在查询uri图像的数据库中的任何uri图像。这不会改变我的建议谢谢。我现在要开始尝试一些建议。我稍后再发回来。