我应该从网址获取图片并将其转换为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[]
。
这是正确的接近方式吗?任何形式的帮助将不胜感激。
答案 0 :(得分:0)
我没试过这个,但是从我最初的想法开始你需要一个Stream。
为此,您可以使用StreamImageSource
从那里你可以使用this中的代码。
答案 1 :(得分:0)
其中的Xamarin.Forms使用IImageSourceHandler
,其实现类似
ImageLoaderSourceHandler
- 适用于UriImageSource StreamImagesourceHandler
- 适用于StreamImageSource 从UriImageSource
读取数据您应该使用ImageLoaderSourceHandler
这是平台类。所以在每个平台下使用像
var handler = new ImageLoaderSourceHandler();
var uiimage = await handler.LoadImageAsync(source, new CancellationToken(), UIScreen.MainScreenScale);
然后,您可以从iOS下的UIImage或Android下的Bitmap获取任何数据。有很多教程如何从中获取byte []。
答案 2 :(得分:0)
FFImageLoading(https://github.com/molinch/FFImageLoading/)CachedImage
有GetImageAsJPG
和GetImageAsPNG
方法。这是一个直接的Xamarin.Forms Image
类替换,具有许多其他功能。
以下是用于图像检索的代码(可以在Image
类自定义渲染器中使用):
答案 3 :(得分:0)
使用WebClient从URL获取字节数组是可行的。
var webClient = new WebClient ();
byte[] byteImage = webClient.DownloadData (imageURL);