我应该从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[]
这是接近正确的方法是什么? 任何形式的帮助,将不胜感激。
我没有试过,但是从我最初的想法,你需要一个流。 对于您可以使用StreamImageSource
从那里,你可以使用代码此 。
里面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 []。
FFImageLoading( https://github.com/molinch/FFImageLoading/ ) CachedImage
有GetImageAsJPG
和GetImageAsPNG
方法。 这是一个直接Xamarin.Forms Image
类替代了很多的附加功能。
下面是用于图像检索(它可以在被使用的代码Image
类定制渲染器):
这是更多钞票来使用Web客户端来从URL获得字节数组。
var webClient = new WebClient ();
byte[] byteImage = webClient.DownloadData (imageURL);