我试图做一个简单的事情的图像,但我不能......同步方式从下载网址
我只是想从互联网网址BitmapImage的,但我的功能似乎并没有工作正确地说,它只是给我一小部分图像。我知道WebResponse正在工作异步,这当然是为什么我有这个问题,但我怎么能同步做到这一点?
这里是我的功能:
internal static BitmapImage GetImageFromUrl(string url)
{
Uri urlUri = new Uri(url);
WebRequest webRequest = WebRequest.CreateDefault(urlUri);
webRequest.ContentType = "image/jpeg";
WebResponse webResponse = webRequest.GetResponse();
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = webResponse.GetResponseStream();
image.EndInit();
return image;
}
感谢很多的帮助。
我没有太多的运气,我的图像仍然部分下载到MemoryStream,也许你可以给我一个示例代码? – Karnalta 2010-09-07 14:42:47
从响应流中读取时,它不会填满缓冲区,从本地文件读取时会发生这种情况。所以读取的字节数量会少于缓冲区的大小。但是它会大于0,表示文件的末尾还没有到达。我想这是从网址完全读取图像失败的关键。 – treaschf 2010-09-07 14:46:10
确定这个示例工作下载图片,我现在应该能够将该文件转换为BitmapImage。 – Karnalta 2010-09-07 14:53:03