2013-01-20 28 views
5

Bir kanvas png olarak kaydetmek için codeplex'ten ImageTools kullanıyorum; Ancak, ben bir writeableBitmap.SaveJpeg() kullanırken aynı sorun vardı. Bu nedenle, sorun görüntü türüyle değil, IsolatedStorage'da nasıl kaydedildiğim veya yüklediğimle ilgilidir.IsolatedStorage Görüntüsünün Kaydedilmesi ve Yüklenmesi Kaydetme Gerekiyor İkiz

Bir kayıt düğmesine basarak görüntüyü kaydettiğimde dosya var, ancak görüntüyü yüklediğimde hiçbir şey görüntülenmiyor. Resmi iki kez kaydedersem, görüntü yüklenir ve doğru şekilde görüntülenir.

Kodum aşağıda.

kaydetme Dosya:

ExtendedImage myImage = myCanvas.ToImage(); 

using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
    if (isoStore.FileExists("image.png")) 
     isoStore.DeleteFile("image.png"); 

    using (var fileStream = isoStore.CreateFile("image.png")) 
    { 
     myImage.WriteToStream(fileStream, "image.png"); 
     fileStream.Close(); 
    } 
} 

Yükleme dosyası

BitmapImage bi = new BitmapImage(); 

using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
    if (isoStore.FileExists("image.png")) 
    { 
     using (var fileStream = isoStore.OpenFile("image.png", FileMode.Open)) 
     { 
      bi.SetSource(fileStream); 
      this.img.Height = bi.PixelHeight; 
      this.img.Width = bi.PixelWidth; 
      this.img.Source = bi; 
     } 
    } 
} 
+1

Kodunuzu denediniz ve hem aygıtta (hem de Nokia Lumia 920) olduğu gibi hem emülatörde çalışıyor hem de çalışıyorlar ... –

+0

Odd. Hem emülatör hem de cihaz üzerinde çalıştım (L920, Visual Studio 2012'yi hedefleyen Windows Phone 8.0) ve hata her ikisinde de kalıcı. Bununla birlikte, çalıştığını bildirdiğiniz için teşekkür ederim. –

cevap

0

isoStore görüntüyü almak için bu kodu deneyin. Benim için çalışıyor.

using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
     if (iso.FileExists(string.Format("image.png"))) 
     { 
      string fileName = "image.png"; 
      string filePath = iso.GetType().GetField("m_RootDir", System.Reflection.BindingFlags.NonPublic | 
      System.Reflection.BindingFlags.Instance).GetValue(iso).ToString() + fileName; 
     } 
} 

Sen FilePath resimdeki kaynağını ayarlayabilir ve bunu erişen herhangi bir sorun olmayacaktır.

görüntüyü kaydederken edilirken bu işe yaramazsa, o zaman sorun ise

. Tuvali png veya jpeg'ye kaydetmek için bir geçici çözüm bulmanız gerekebilir.