Resim dosyasını okumak istiyorum (png, jpg, vb.). ve xml dosyasını kaydedin, görüntüyü xml'den yükleyin. İlk önceGörüntü dosyası WPF'de dize nasıl kaydedilir?
. System.InvalidOperationException öğesini atlayın. saniye. Aşağıdaki metodun doğru olmadığını bilmiyorum.Senaryo.
1. Hdd'den görüntü dosyasını açın.
2. Uygulamamdaki belgeyi (aşağıdaki kaynakta 'SomeClass' gibi bir görüntü içeren metin) kaydedin.
3. Belgeyi kaydettiğinizde, uygulama Image ile SomeClass serileştirir.
4. Uygulamayı yeniden çalıştırın ve xml dosyasını yükleyin.
5. Daha sonra, uygulamada görüntüyü göster.
using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(@"C:\z.jpg")))
{
StreamReader sr = new StreamReader(ms);
someClass.ImageData = sr.ReadToEnd();
Xml.Serialize<SomeClass>(someClass, @"C:\z.xml");
}
SomeClass someClass = Xml.Deserialize<SomeClass>(@"C:\z.xml");
BitmapImage image = new BitmapImage();
image.BegineInit();
image.Source = ??
image.EndInit();
System.Windows.Controls.Image imageControl = new Image();
imageControl.Source = image;
this.Content = imageControl;
bu
serialize, Deserialize statik bir yöntemdir.
public static class Xml
{
public static void Serialize<T>(T data, string path)
{
XmlSerializer s = new XmlSerializer(typeof(T));
using (FileStream fs = new FileStream(path, FileMode.Create))
{
s.Serialize(fs, data);
}
}
public static T Deserialize<T>(string path)
{
XmlSerializer s = new XmlSerializer(typeof(T));
using (FileStream fs = new FileStream(path, FileMode.Open))
{
fs.Position = 0;
return (T)s.Deserialize(fs);
}
}
}
Bu
[Serializable]
public class SomeClass
{
public string ImageData { get; set; }
public string TextData { get; set; }
}
teşekkür ederim SomeClass
olduğunu.
MSDN belgelerinde bölüm ** Hata ayıklama Serile Kodu ** Bkz [* XmlSerializer * ile genel sorunları giderme] (https://msdn.microsoft.com/en-us/library/aa302290.aspx – slugster