Basierend auf dem hier beschriebenen, nochmal eine Variante die ein paar mehr Möglichkeiten bietet.
XAML:
Herkömmliche Variante:
ImageIpCam.Source = new BitmapImage(new Uri("http://www.it4zwigge.de/images/logo.jpg"));
Felder:
... private WebClient _webClient; private BitmapImage _currentImage; ...
Konstruktor:
... _currentImage = new BitmapImage(); _webClient = new WebClient(); _webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(_webClient_OpenReadCompleted); ...
Methode 1 - Image asynchron herunterladen und einem Image-Control zuweisen:
private void _webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { if (e.Error == null && !e.Cancelled) { try { _currentImage.SetSource(e.Result); ImageIpCam.Source = _currentImage; } catch {} } }
Methode 2 - Image bei Bedarf speichern:
private void SaveImage(string imageToSave) { try { String tempImage = "TempImage"; var myStore = IsolatedStorageFile.GetUserStoreForApplication(); if (myStore.FileExists(tempImage)) { myStore.DeleteFile(tempImage); } IsolatedStorageFileStream myFileStream = myStore.CreateFile(tempImage); WriteableBitmap wb = new WriteableBitmap(_currentImage); wb.SaveJpeg(myFileStream, wb.PixelWidth, wb.PixelHeight, 0, 85); myFileStream.Close(); myFileStream = myStore.OpenFile(tempImage, FileMode.Open, FileAccess.Read); MediaLibrary mediaLibrary = new MediaLibrary(); mediaLibrary.SavePicture(imageToSave, myFileStream); myFileStream.Close(); MessageBox.Show("Das Bild liegt jetzt im Album \"Gespeicherte Bilder\"."); } catch (Exception ex) { MessageBox.Show("Fehler beim Speichern! " + ex.Message); } }
Keine Kommentare:
Kommentar veröffentlichen