图片和XML格式文件相互转换

来源:互联网 发布:安平淘宝贝高瞻幼儿园 编辑:程序博客网 时间:2024/06/03 09:36

图片和XML格式文件相互转换

Public Class Form1
    Private MyFile As String = ""
    Private MyFileExt As String = ""
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
      Handles Button1.Click
        '将图片保存成XML
        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 Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles Button2.Click
        '从XML中得到图片
        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 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
End Class
 

原创粉丝点击