我正在开发Window Phone 8.1应用程序。我试图从Web地图服务获取图像并在MapControl中显示它。我已经使用http请求获取了流,现在我想在Image中对其进行转换。
我该怎么做这部分?这就是我所拥有的:
下载流:
HttpClient httpClient = new HttpClient();
HttpResponseMessage request = await httpClient.GetAsync("<URL>").ConfigureAwait(false);
Stream stream = await request.Content.ReadAsStreamAsync().ConfigureAwait(false);
现在我从请求中获得了正确的流(它是一个png图像)。现在我想用Image
转换它。我已经尝试使用FromStream()
方法,但似乎WP 8.1中不支持它。
你可以用最后一部分来帮助我吗?
答案 0 :(得分:0)
你可以试试这样的事情
HttpClient httpClient = new HttpClient();
HttpResponseMessage request = await httpClient.GetAsync("URL").ConfigureAwait(false);
using (Stream stream = await request.Content.ReadAsStreamAsync().ConfigureAwait(false))
{
MemoryStream memStream = new MemoryStream();
await stream.CopyToAsync(memStream);
memStream.Position = 0;
CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(memStream.AsRandomAccessStream());
img.Source = bitmap;
memStream.Dispose();
}
);
}
其中 img 是在XAML中定义的Image对象。
BTW,一个简单的<Image Source="URL" />
如果你需要的只是一个位图作为Image的源,那么XAML中的也可能适合你。