诺基亚刚刚发布了'诺基亚成像SDK'版本1.但是,现在我无法使用Stream下载图像,因为SDK的StreamImageSource尝试使用不能用于Async Stream的Stream.Length。我怎样才能解决这个问题?
这是我的代码:
HttpClient c = new HttpClient();
Stream orgImageStream = await c.GetStreamAsync(imageUri);
var imageSource = new StreamImageSource(orgImageStream); //fails here since he tries to use Stream.Length
答案 0 :(得分:3)
有趣的错误 - 将它报告给诺基亚会很有用 无论如何,您可以通过先将文件保存到独立存储区,或将其复制到本地 MemoryStream 来解决此问题:
HttpClient c = new HttpClient();
Stream orgImageStream = await c.GetStreamAsync(imageUri);
MemoryStream ms = new MemoryStream();
await orgImageStream.CopyToAsync(ms);
ms.Seek(0, SeekOrigin.Begin);
var imageSource = new StreamImageSource(ms);
但是不要忘记使用使用(Stream ...){...} 中的所有Streams来正确处理它们!