WPF将位图图像写入/读取为XML失败,错误为';无成像组件…';错误

WPF将位图图像写入/读取为XML失败,错误为';无成像组件…';错误,wpf,xmlreader,bitmapimage,xmlwriter,Wpf,Xmlreader,Bitmapimage,Xmlwriter,我正在尝试使用XmlReader/XmlWriter类将位图图像写入/读取到Xml。写出来后,我可以在输出Xml文件中看到一个很长的CDATA部分。当读入时,我可以看到它确实读入了相同的CDATA部分数据。但是尝试重新创建BitmapImage失败,出现错误 "No imaging component suitable to complete this operation was found." …在下面写着“image.StreamSource=stream”的行上 Public Sub W

我正在尝试使用XmlReader/XmlWriter类将位图图像写入/读取到Xml。写出来后,我可以在输出Xml文件中看到一个很长的CDATA部分。当读入时,我可以看到它确实读入了相同的CDATA部分数据。但是尝试重新创建BitmapImage失败,出现错误

"No imaging component suitable to complete this operation was found."
…在下面写着“image.StreamSource=stream”的行上

Public Sub WriteXmlImage(ByVal writer As XmlWriter, ByVal image as BitmapImage)
  Using stream As New MemoryStream
    Dim encoder = New PngBitmapEncoder
      encoder.Frames.Add(BitmapFrame.Create(image))
      encoder.Save(stream)
      writer.WriteCData(Convert.ToBase64String(stream.ToArray()))
    End Using
End Sub

Public Function ReadXmlImage(ByVal reader As XmlReader) As BitmapImage
  Using stream As New IO.MemoryStream(Convert.FromBase64String(reader.Value))
    Dim image As New BitmapImage
    image.BeginInit()
    image.StreamSource = stream
    image.EndInit()
    return image
  End Using
End Sub
在测试中,我使用以下简单代码创建测试位图图像

Dim image As New BitmapImage(New Uri("c:\devil.png"))

有什么想法吗?

我试过你的代码,它运行得很好,除了你为
BitmapImage
设置为
StreamSource
MemoryStream
部分被using语句处理掉了。这对你来说很好。但这并不能帮我解决问题!我的意思是,你发布的代码可能不是问题所在,但我想你明白这一点。。可能此链接会有所帮助:。找到了问题。原来是我的错,编码错误与上述来源无关。有一次我修正了上面的代码工作得很好。无论如何,谢谢你。