Ich greife auf ein Bild von einem BLOB-Speicher auf meinem azure-Dienst zu. Ich gebe das uri
für das Bild zurück und benutze dann HttpClient, um es herunterzuladen. Die uri
wird als korrekt verifiziert.Konvertieren eines WriteableBitmap-Image ToArray in UWP
using (HttpClient client = new HttpClient())
{
try
{
HttpResponseMessage response = await client.GetAsync(new Uri(((App)Application.Current).results.statsInformation.ImageBlob.ImageUri, UriKind.RelativeOrAbsolute));
if (response != null && response.StatusCode == HttpStatusCode.OK)
{
using (var stream = await response.Content.ReadAsStreamAsync())
{
using (var memStream = new MemoryStream())
{
await stream.CopyToAsync(memStream);
memStream.Position = 0;
memStream.Seek(0, SeekOrigin.Begin);
myOnlineImage.SetSource(memStream.AsRandomAccessStream());
}
}
}
}
catch (Exception)
{
throw;
}
}
das Bild von dem Server wird in den Variablen myOnlineImage
gespeichert. Ich möchte dann die Pixelinformation unter Verwendung myOnlineImage.PixelBuffer.ToArray();
extrahieren. Liegt das daran, dass das Bild nicht korrekt heruntergeladen wurde? Kann mir jemand mit Optionen helfen, das zu lösen?
Die Ausnahme, die ich empfangen habe ist:
Exception
Nachricht "Wert nicht null sein kann \ r \ nParameter Name: source"
Stacktrace "bei System.Runtime .InteropServices.Marshal.CopyToManaged (IntPtr-Quelle, Objektziel, Int32-startIndex, Int32-Länge) \ r \ n bei System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions.CopyTo (IBuffer-Quelle, UInt32-Quellindex, Byte [] -Zielort, Int32 DestinationIndex, Int32-Anzahl) \ r \ n bei System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions.ToArray (IBuffer-Quelle, UInt32-sourceIndex, Int32-Anzahl) \ r \ n bei System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions.ToArray (IBuffer-Quelle) \ r \ n bei Stonegaard_endless_runner.MainPage.d__7.MoveNext()“
Zusatz
I überprüft haben, dass I-Thread Zugriff auf das Bild haben.
Das Bild ist nicht eine Datei, sondern von einem Server oder von einem anderen Bitmap. Irgendwelche Änderungen, die Sie wissen, um das zu konvertieren, um Ihren Code zu testen? – JTIM
@JTIM Durch Ersetzen der Verwendung mit erwarten Datei durch: mit (Stream = warten (response.Content.ReadAsStreamAsync())) {mit (IRandomAccessStream strm = stream.AsRandomAccessStream()) {... –
Es friert ein, wenn die Zeile 'bi.SetSource (strm)' wird ausgeführt. Danach passiert nichts? – JTIM