转换“Xamarin.Form.Image”类型“字节[]”(Convert 'Xamari

2019-10-22 07:33发布

我应该从URL获取图像,并将其转换为byte[] 以下是我取得的成就

var webImage = new Image { Aspect = Aspect.AspectFit };
webImage.Source = ImageSource.FromUri(new    Uri("http://xamarin.com/content/images/pages/forms/example-app.png"));

但现在我无法将图像类型转换byte[]

这是接近正确的方法是什么? 任何形式的帮助,将不胜感激。

Answer 1:

我没有试过,但是从我最初的想法,你需要一个流。 对于您可以使用StreamImageSource

从那里,你可以使用代码此 。



Answer 2:

里面Xamarin.Forms使用IImageSourceHandler具有类似的实现

  • ImageLoaderSourceHandler -为UriImageSource
  • StreamImagesourceHandler -为StreamImageSource
  • 等等

对于读取数据UriImageSource您应该使用ImageLoaderSourceHandler这是平台类。 所以在每个平台使用类似的代码

var handler = new ImageLoaderSourceHandler();
var uiimage = await handler.LoadImageAsync(source, new CancellationToken(), UIScreen.MainScreenScale);

然后你就可以在iOS或Android的从下位图达到从UIImage的任何数据。 有很多教程如何从他们那里得到的byte []。



Answer 3:

FFImageLoading( https://github.com/molinch/FFImageLoading/ ) CachedImageGetImageAsJPGGetImageAsPNG方法。 这是一个直接Xamarin.Forms Image类替代了很多的附加功能。

下面是用于图像检索(它可以在被使用的代码Image类定制渲染器):

  • Android的
  • iOS版
  • 视窗


Answer 4:

这是更多钞票来使用Web客户端来从URL获得字节数组。

var webClient = new WebClient ();
byte[] byteImage = webClient.DownloadData (imageURL);


文章来源: Convert 'Xamarin.Form.Image' type 'byte[]'