新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论SVG, GML, X3D, VRML, VML, XAML, AVALON, Batik等基于XML的图形技术,以及有关GIS的应用。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 SVG/GML/VRML/X3D/XAML 』 → [转帖]把图象文件转换成XML格式文件 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2792 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [转帖]把图象文件转换成XML格式文件 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     anchen0617 帅哥哟,离线,有人找我吗?双子座1983-6-17
      
      
      威望:5
      等级:大二(研究C++)
      文章:281
      积分:3413
      门派:XML.ORG.CN
      注册:2004/10/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给anchen0617发送一个短消息 把anchen0617加入好友 查看anchen0617的个人资料 搜索anchen0617在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 访问anchen0617的主页 引用回复这个贴子 回复这个贴子 查看anchen0617的博客楼主
    发贴心情 [转帖]把图象文件转换成XML格式文件

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


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

    Public Class Form1
    Inherits System.Windows.Forms.Form

    #Region " Windows 窗体设计器生成的代码 "
    Public Sub New()
    MyBase.New()
    InitializeComponent()
    在 InitializeComponent() 调用之后添加任何初始化
    End Sub

    窗体重写处置以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
    If Not (components Is Nothing) Then
    components.Dispose()
    End If
    End If
    MyBase.Dispose(disposing)
    End Sub

    Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer
    注意:以下过程是 Windows 窗体设计器所必需的
    可以使用 Windows 窗体设计器修改此过程。
    不要使用代码编辑器修改它。
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
    Friend WithEvents Button3 As System.Windows.Forms.Button
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents Label2 As System.Windows.Forms.Label
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    Me.Button1 = New System.Windows.Forms.Button()
    Me.Button2 = New System.Windows.Forms.Button()
    Me.PictureBox1 = New System.Windows.Forms.PictureBox()
    Me.Button3 = New System.Windows.Forms.Button()
    Me.Label1 = New System.Windows.Forms.Label()
    Me.Label2 = New System.Windows.Forms.Label()
    Me.SuspendLayout()

    Button1

    Me.Button1.Location = New System.Drawing.Point(365, 63)
    Me.Button1.Name = "Button1"
    Me.Button1.Size = New System.Drawing.Size(115, 23)
    Me.Button1.TabIndex = 0
    Me.Button1.Text = "将图象保存成XML"

    Button2

    Me.Button2.Location = New System.Drawing.Point(365, 98)
    Me.Button2.Name = "Button2"
    Me.Button2.Size = New System.Drawing.Size(115, 23)
    Me.Button2.TabIndex = 1
    Me.Button2.Text = "从XML中得到图象"

    PictureBox1

    Me.PictureBox1.Location = New System.Drawing.Point(18, 6)
    Me.PictureBox1.Name = "PictureBox1"
    Me.PictureBox1.Size = New System.Drawing.Size(320, 460)
    Me.PictureBox1.TabIndex = 2
    Me.PictureBox1.TabStop = False

    Button3

    Me.Button3.Location = New System.Drawing.Point(365, 28)
    Me.Button3.Name = "Button3"
    Me.Button3.Size = New System.Drawing.Size(115, 23)
    Me.Button3.TabIndex = 3
    Me.Button3.Text = "浏览图片…"

    Label1

    Me.Label1.Location = New System.Drawing.Point(369, 135)
    Me.Label1.Name = "Label1"
    Me.Label1.Size = New System.Drawing.Size(105, 95)
    Me.Label1.TabIndex = 4

    Label2

    Me.Label2.Location = New System.Drawing.Point(367, 437)
    Me.Label2.Name = "Label2"
    Me.Label2.Size = New System.Drawing.Size(130, 16)
    Me.Label2.TabIndex = 5
    Me.Label2.Text = "【孟宪会之精彩世界】"

    Form1

    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
    Me.ClientSize = New System.Drawing.Size(500, 480)
    Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Label2, Me.Label1, _
    Me.Button3, Me.PictureBox1, Me.Button2, Me.Button1})
    Me.Name = "Form1"
    Me.Text = "图象文件和XML格式文件互换例子"
    Me.ResumeLayout(False)

    End Sub

    #End Region

    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

    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) _
    Handles MyBase.Closing
    System.Diagnostics.Process.Start("IExplore.exe", "http://xml.sz.luohuedu.net/")
    End Sub
    End Class


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    xml这门语言太好了,我们共同努力吧!!!!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/1 1:48:00
     
     GoogleAdSense双子座1983-6-17
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/11 14:36:17

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    46.875ms