Frage

Nokia just released 'Nokia Imaging SDK' version 1. However, now I can not use a Stream download image since SDK's StreamImageSource tries to use Stream.Length which is unavailable for Async Stream. How can I get around this issue?

Here is my code:

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

Lösung

Interesting bug - it would be useful to report it to Nokia.
Anyway, you can solve it by either saving the file to isolated storage first, or copying it to MemoryStream locally:

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);

But don't forget to use all Streams in using (Stream ... ) { ... } to Dispose them properly!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top