从流中获取图像(WMS)

时间:2014-06-23 19:27:52

标签: image stream windows-phone-8.1 wms

我正在开发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中不支持它。

你可以用最后一部分来帮助我吗?

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中的

也可能适合你。