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

原创 2003年09月02日 23:33:00

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

作者: 孟宪会 出自: 【孟宪会之精彩世界】 发布日期: 2003-8-31 2:10:12


 

利用.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 NothingThen
            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(36563)
            
Me.Button1.Name = "Button1"
            
Me.Button1.Size = New System.Drawing.Size(11523)
            
Me.Button1.TabIndex = 0
            
Me.Button1.Text = "将图象保存成XML"
            
'
            'Button2
            '
            Me.Button2.Location = New System.Drawing.Point(36598)
            
Me.Button2.Name = "Button2"
            
Me.Button2.Size = New System.Drawing.Size(11523)
            
Me.Button2.TabIndex = 1
            
Me.Button2.Text = "从XML中得到图象"
            
'
            'PictureBox1
            '
            Me.PictureBox1.Location = New System.Drawing.Point(186)
            
Me.PictureBox1.Name = "PictureBox1"
            
Me.PictureBox1.Size = New System.Drawing.Size(320460)
            
Me.PictureBox1.TabIndex = 2
            
Me.PictureBox1.TabStop = False
            
'
            'Button3
            '
            Me.Button3.Location = New System.Drawing.Point(36528)
            
Me.Button3.Name = "Button3"
            
Me.Button3.Size = New System.Drawing.Size(11523)
            
Me.Button3.TabIndex = 3
            
Me.Button3.Text = "浏览图片…"
            
'
            'Label1
            '
            Me.Label1.Location = New System.Drawing.Point(369135)
            
Me.Label1.Name = "Label1"
            
Me.Label1.Size = New System.Drawing.Size(10595)
            
Me.Label1.TabIndex = 4
            
'
            'Label2
            '
            Me.Label2.Location = New System.Drawing.Point(367437)
            
Me.Label2.Name = "Label2"
            
Me.Label2.Size = New System.Drawing.Size(13016)
            
Me.Label2.TabIndex = 5
            
Me.Label2.Text = "【孟宪会之精彩世界】"
            
'
            'Form1
            '
            Me.AutoScaleBaseSize = New System.Drawing.Size(513)
            
Me.ClientSize = New System.Drawing.Size(500480)
            
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 StringAs 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 ObjectByVal e As System.ComponentModel.CancelEventArgs) _
            
Handles MyBase.Closing
            System.Diagnostics.Process.Start(
"IExplore.exe", "http://xml.sz.luohuedu.net/")
            
End Sub
            
End Class

结果如下:

将MATLAB中的mat数据转换为OpenCV能够读取的xml数据

在图像处理领域,有时我们需要将MATLAB中的程序移植到C平台上,这时最好的办法就是利用视觉图像处理库OpenCV来实现。然而,MATLAB中的mat数据我们无法直接读取到OpenCV工程中去,Ope...
  • herhero
  • herhero
  • 2015年12月30日 21:54
  • 2242

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

利用.NET 框架下的FromBase64String和ToBase64String方法可以很容易地实现图象文件和XML文件的互换。这样可以轻易解决以XML格式保存图片的问题。代码如下: P...
  • my98800
  • my98800
  • 2016年07月30日 11:58
  • 300

转换xml格式的短信记录

2         0         1         18712345678         2015-11-17 00:04:40                 晚安 妞        ...
  • dlf123321
  • dlf123321
  • 2015年11月18日 13:47
  • 3056

java工具---将txt文件转成xml格式的文件

通过java,将txt文档的内容转化成xml格式的内容,并且xml格式比较标准,可以通过调用相关的jar包来实现...
  • u010454729
  • u010454729
  • 2014年04月29日 20:52
  • 2339

xml学习(1)xml的几种文件格式

xml的几种文件格式,以及元素的几种形式
  • yucihai
  • yucihai
  • 2013年11月20日 00:03
  • 5330

matlab生成xml (将SynthText数据转成XML)

matlab生成xml(将SynthText数据转成XML)
  • GongChangSan
  • GongChangSan
  • 2017年04月14日 11:23
  • 930

读取JSON字符串,转为XML文件(二)

在做WEB后端开发的时候,会用到XML来传输数据。客户端发送请求(XML)到服务器,服务器又反馈信息(XML)到客户端。在这个过程中,会涉及到读取JSON字符串打包成XML,以及解析XML成JSON字...
  • oceanperfect
  • oceanperfect
  • 2015年01月26日 13:18
  • 1538

java中使用XStream实现将对象转为xml格式字符串或者将xml格式的字符串转换为对象==

我们经常会有需求,比如调用别人的接口,别人会返回给你json或者xml格式的数据,然后我们要转换为相应的对象供我们自己使用; 也有的时候是别人的调我们的接口,让我们提供xml格式的数据或者json格...
  • sun5769675
  • sun5769675
  • 2016年01月05日 09:47
  • 4723

一个特殊的内码转换处理对于XML格式的UTF-8

一个特殊的内码转换处理对于XML格式的UTF-8 一般来说我们所使用的中文网站都是基于UTF-8的,只需要在录制或者是回放时设置对应的编码就行了,但是随着技术的升级,慢慢的我们发现有些内容的UTF-8...
  • liuyuzhu111
  • liuyuzhu111
  • 2015年11月12日 17:47
  • 888

XML和对象相互转换的方法

最近项目中需要用到XML配置一些信息,百度了一下,发现使用XStream相对简单,简单配置一下即可进行转换,方法如下: 首先添加依赖 com.thoughtworks.xs...
  • dreamfly88
  • dreamfly88
  • 2016年09月19日 18:02
  • 2922
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把图象文件转换成XML格式文件
举报原因:
原因补充:

(最多只允许输入30个字)