0
我在Xamarin表单应用程序中使用了优秀的Xam.Plugin.Media nuget包,以允许用户拍照。我按照从Xam.Plugin.Media GitHub的页面示例代码:Xam.Media.Plugin位图太大而无法上传到纹理中
takePhoto.Clicked += async (sender, args) =>
{
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
DisplayAlert("No Camera", ":(No camera available.", "OK");
return;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
if (file == null)
return;
await DisplayAlert("File Location", file.Path, "OK");
image.Source = ImageSource.FromStream(() =>
{
var stream = file.GetStream();
file.Dispose();
return stream;
});
};
然而,这种失败与错误信息的android:
位图太大,无法上传到纹理( 5312x2988,max = 4096x4096)
有没有办法解决这个问题?理想情况下使用PCL位图库
插件的测试版本允许你指定大小和压缩˚F演员为图像 – Jason
@Jason我将PhotoSize设置为Plugin.Media.Abstractions.PhotoSize.Small和CompressionQuality为92,我得到相同的错误信息。有任何想法吗? – jonesne
您可以使用https://github.com/luberda-molinet/FFImageLoading作为图像视图。它具有DonwsampleToSize属性,它将缩减您的图像以匹配您的图像视图,它将消除此错误 – Greensy