【问题标题】:Unable to use downloaded image using the Nokia imaging SDK无法使用诺基亚映像 SDK 使用下载的映像
【发布时间】:2014-12-04 09:45:01
【问题描述】:

Nokia 刚刚发布了“Nokia Imaging SDK”第 1 版。但是,现在我无法使用 Stream 下载图像,因为 SDK 的 StreamImageSource 尝试使用 Stream.Length,这对于 Async Stream 不可用。我该如何解决这个问题?

这是我的代码:

HttpClient c = new HttpClient();
Stream orgImageStream = await c.GetStreamAsync(imageUri);
var imageSource = new StreamImageSource(orgImageStream);  //fails here since he tries to use Stream.Length

【问题讨论】:

    标签: c# windows-phone-8 nokia-imaging-sdk lumia-imaging-sdk


    【解决方案1】:

    有趣的错误 - 向诺基亚报告它会很有用。
    无论如何,您可以通过先将文件保存到隔离存储,或者将其复制到本地 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);
    

    但不要忘记使用 using (Stream ... ) { ... } 中的所有 Streams 来正确处理它们!

    【讨论】:

    • 在深夜编码之后,我想出了一个类似的方法。我将 Stream 转换为 byte[] 并将其传递给 MemoryStream 以提供 StreamImageSource。我没有尝试过您的方法,但我会将其标记为已回答。谢谢马丁
    • 请注意,由于流数据现在实际上已加载到内存中,因此您可以改用 BufferImageSource 来避免一些开销。
    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    相关资源
    最近更新 更多