2013-01-20 21 views
5

मैं एक कैनवास को पीएनजी के रूप में सहेजने के लिए कोडप्लेक्स से ImageTools का उपयोग कर रहा हूं; हालांकि, मुझे एक ही समस्या थी जब मैं writeableBitmap.SaveJpeg() का उपयोग कर रहा था। इसलिए, समस्या छवि प्रकार के साथ नहीं है, बल्कि IsolatedStorage में मैं कैसे सहेज रहा हूं या लोड कर रहा हूं।पृथक स्टोरेज को सहेजने और लोड करने की छवि दो बार सहेजने की आवश्यकता है

जब मैं एक सहेजें बटन दबाकर छवि को सहेजता हूं तो फ़ाइल मौजूद होती है, लेकिन जब मैं छवि लोड करता हूं तो कुछ भी प्रकट नहीं होता है। अगर मैं छवि को दो बार सहेजता हूं तो छवि लोड होती है और सही तरीके से प्रदर्शित होती है।

नीचे मेरा कोड है।

सहेजा जा रहा है फ़ाइल:

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(); 
    } 
} 

लोड हो रहा है फ़ाइल

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

बस अपना कोड आज़माया और डिवाइस पर काम करने वाले एमुलेटर (नोकिया लुमिया 920) दोनों पर ठीक काम कर रहा है ... –

+0

विषम। मैंने दोनों एमुलेटर और डिवाइस (एल 9 20, विजुअल स्टूडियो 2012 को विंडोज फोन 8.0 को लक्षित करने) पर कोशिश की है और त्रुटि दोनों पर लगातार है। मुझे यह बताने के लिए धन्यवाद कि यह काम करता है, हालांकि। –

उत्तर

0

isoStore से छवि को पुनः प्राप्त करने के लिए इस कोड का प्रयास करें। इससे मेरा काम बनता है।

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; 
     } 
} 

आप छवि का स्रोत फ़ाइलपैथ पर सेट कर सकते हैं और आपको इसे एक्सेस करने में कोई समस्या नहीं होगी।

यदि यह काम नहीं करता है, तो समस्या तब होती है जब आप छवि को सहेज रहे हों। आपको कैनवास को पीएनजी या जेपीजी में सहेजने के लिए कामकाज मिलना पड़ सकता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^