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