Synchron laden Sie ein Bild aus URL
Ich will einfach nur, um ein BitmapImage von einer internet-URL, aber meine Funktion scheint nicht richtig zu arbeiten, es nur zurückgeben, mir einen kleinen Teil des Bildes. Ich weiß, WebResponse arbeitet async, und das ist sicherlich, warum ich dieses problem haben, aber wie kann ich es synchron?
internal static BitmapImage GetImageFromUrl(string url)
{
Uri urlUri = new Uri(url);
WebRequest webRequest = WebRequest.CreateDefault(urlUri);
webRequest.ContentType = "image/jpeg";
WebResponse webResponse = webRequest.GetResponse();
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = webResponse.GetResponseStream();
image.EndInit();
return image;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst sollten Sie laden Sie einfach das Bild, und speichern Sie es lokal in einer temporären Datei oder in einer
MemoryStream
. Und erstellen Sie dann dieBitmapImage
- Objekt aus.Herunterladen können Sie das Bild z.B. so:
Warum nicht
System.Net.WebClient.DownloadFile
?dies ist der code, den ich verwenden, um schnappen Sie sich ein Bild von einer url....
Die einfachste ist
können Sie dann ändern BitmapCacheOption zu Beginn der retrieval-Prozess. Jedoch, ist das Bild abgerufen async. Aber man sollte nicht viel Pflege