0
我試圖從互聯網上通過URL將圖像下載到我的Windows8應用程序並將其轉換爲字節[]。 (BitmapImage是不可序列化的)從互聯網下載圖像並將其轉換爲WinRT中的byte []
不幸的是,當我嘗試處理此代碼時,由於Stream不可搜索,它在bytearray初始化時崩潰。
有沒有辦法做到這一點?我有紅,有沒有流仍然是在WinRT中可搜索...
private async Task<byte[]> DownloadImageFromWebsite(string url)
{
//BitmapImage result = null;
byte[] result = null;
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
WebResponse response = await request.GetResponseAsync();
Stream imageStream = response.GetResponseStream();
result = new byte[imageStream.Length];
await imageStream.ReadAsync(result, 0, (int)imageStream.Length);
response.Dispose();
}
catch (Exception ex)
{
return null;
}
return result;
}
而不是嘗試一次讀取所有數據,您可以讀取固定大小的塊並使用[MemoryStream](http://msdn.microsoft.com/zh-cn/library/system .io.memorystream.aspx),這是可擴展的。 (也就是說,我不太瞭解這將如何與異步功能進行交互。) – millimoose