把图象文件转换成XML格式文件

利用.NET 框架下的FromBase64String和ToBase64String方法可以很容易地实现图象文件和XML文件的互换。这样可以轻易解决以XML格式保存图片的问题。代码如下:   

  Private MyFile As String  =   ""
  Private MyFileExt As String 
=   ""
  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button2.Click
    Dim pic As String
    Dim MyXml As System.Xml.XmlDocument 
=  New System.Xml.XmlDocument()
    MyXml.Load(
" c:\MyPhoto.xml " )
    Dim picNode As System.Xml.XmlNode
    picNode 
=  MyXml.SelectSingleNode( " /pic/photo " )
    pic 
=  picNode.InnerText
    Dim memoryStream As System.IO.MemoryStream
    memoryStream 
=  New System.IO.MemoryStream(Convert.FromBase64String(pic))
    Me.PictureBox1.Image 
=  New System.Drawing.Bitmap(memoryStream)
    memoryStream.Close()
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click
    If MyFile 
=   ""  Then
      MessageBox.Show(
" 请选择一个图片! " " 错误 " , MessageBoxButtons.OK, MessageBoxIcon.Warning)
      Exit Sub
    End If
    Dim MyImg As System.Drawing.Image 
=  MyImg.FromFile(MyFile)
    Dim memoryStream As System.IO.MemoryStream 
=  New System.IO.MemoryStream()
    MyImg.Save(memoryStream, GetImageType(MyFileExt))
    Dim b() As Byte
    b 
=  memoryStream.GetBuffer()
    Dim pic As String 
=  Convert.ToBase64String(b)
    memoryStream.Close()
    Dim MyXml As System.Xml.XmlDocument 
=  New System.Xml.XmlDocument()
    MyXml.LoadXml(
" <pic><name>孟宪会</name><photo> "   +  pic  +   " </photo></pic> " )
    MyXml.Save(
" c:\MyPhoto.xml " )
    Label1.Text 
=   " 文件被保存到了: "   +  Microsoft.VisualBasic.ChrW( 13 +   " c:\MyPhoto.xml "
  End Sub

  Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button3.Click
    Dim openFileDialog1 As New OpenFileDialog()
    openFileDialog1.InitialDirectory 
=   " c:\"
    openFileDialog1.Filter  =   " PNG(*.png)|*.png|Gif(*.gif)|*.gif|Jpg(*.jpg)|*.jpg|所有图象文件(*.*)|*.* "
    openFileDialog1.FilterIndex 
=   2
    openFileDialog1.RestoreDirectory 
=  True
    If openFileDialog1.ShowDialog() 
=  DialogResult.OK Then
      MyFile 
=  openFileDialog1.FileName()
      MyFileExt 
=  MyFile.Substring(MyFile.LastIndexOf( " . " +   1 )
    End If
  End Sub

  Public Function GetImageType(ByVal str As String) As System.Drawing.Imaging.ImageFormat
    Select Case str.ToLower()
      Case 
" jpg "
        Return System.Drawing.Imaging.ImageFormat.Jpeg
      Case 
" gif "
        Return System.Drawing.Imaging.ImageFormat.Gif
      Case 
" tiff "
        Return System.Drawing.Imaging.ImageFormat.Tiff()
      Case 
" icon "
        Return System.Drawing.Imaging.ImageFormat.Icon
      Case 
" image/png "
        Return System.Drawing.Imaging.ImageFormat.Png
      Case Else
        Return System.Drawing.Imaging.ImageFormat.MemoryBmp
    End Select
  End Function

你可能感兴趣的:(xml)