Private MyFile As String = ""
Private MyFileExt As String = ""
Dim Conn As New SqlClient.SqlConnection
Dim BaseCtrl As New GoldCodeClass.SqlDataBaseCtrl
Dim ID As Long
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'//加载动画GIF可能会发生错误.
Dim Img As System.Drawing.Bitmap
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)) '//将 BASE64 转为一个内存流
Img = New System.Drawing.Bitmap(MemoryStream) '//从内存流中建立一个图象.
Me.PictureBox1.Image = Img
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) '//将数据变为 BASE64 编号
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 "bmp"
Return System.Drawing.Imaging.ImageFormat.Bmp
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
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Conn = BaseCtrl.CreateSqlConn("MSTOP", "PUBS", "SA", "123")
ID = 1
End Sub
'//
'//保存图片到数据库
'//
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.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)) '//将文件保存到内存流中.
'//MyImg.Save("C:\A.JPG", System.Drawing.Imaging.ImageFormat.Jpeg) '//保存为JPEG格式.
Dim B() As Byte
B = memoryStream.GetBuffer() '//取内存流数据
Dim Pic As String = Convert.ToBase64String(B) '//将数据变为 BASE64 编号
MemoryStream.Close()
Dim StrSql As String
StrSql = "DELETE FROM LXA"
BaseCtrl.ExeSqlCmd(Conn, StrSql)
StrSql = "INSERT INTO LXA (ImgID,ImgStr) VALUES('" & ID & "','" & Pic & "')"
BaseCtrl.ExeSqlCmd(Conn, StrSql)
End Sub
'//
'//从数据库中取图片.
'//
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'//加载动画GIF可能会发生错误.
Dim Img As System.Drawing.Bitmap
Dim Pic As String
Dim StrSql As String
Pic = BaseCtrl.GetOneValue(Conn, "lxa", "ImgStr", "where ImgID='" & ID & "'")
Dim MemoryStream As System.IO.MemoryStream
MemoryStream = New System.IO.MemoryStream(Convert.FromBase64String(Pic)) '//将 BASE64 转为一个内存流
Img = New System.Drawing.Bitmap(MemoryStream) '//从内存流中建立一个图象.
Me.PictureBox1.Image = Img
MemoryStream.Close()
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 Button4 As System.Windows.Forms.Button
Friend WithEvents Button5 As System.Windows.Forms.Button
Friend WithEvents Button6 As System.Windows.Forms.Button
<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.Button4 = New System.Windows.Forms.Button
Me.Button5 = New System.Windows.Forms.Button
Me.Button6 = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(438, 68)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(138, 25)
Me.Button1.TabIndex = 0
Me.Button1.Text = "将图象保存成XML"
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(438, 106)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(138, 24)
Me.Button2.TabIndex = 1
Me.Button2.Text = "从XML中得到图象"
'
'PictureBox1
'
Me.PictureBox1.Location = New System.Drawing.Point(8, 24)
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(408, 272)
Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
Me.PictureBox1.TabIndex = 2
Me.PictureBox1.TabStop = False
'
'Button3
'
Me.Button3.Location = New System.Drawing.Point(438, 30)
Me.Button3.Name = "Button3"
Me.Button3.Size = New System.Drawing.Size(138, 25)
Me.Button3.TabIndex = 3
Me.Button3.Text = "浏览图片…"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(443, 145)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(126, 103)
Me.Label1.TabIndex = 4
'
'Button4
'
Me.Button4.Location = New System.Drawing.Point(456, 272)
Me.Button4.Name = "Button4"
Me.Button4.Size = New System.Drawing.Size(112, 32)
Me.Button4.TabIndex = 6
Me.Button4.Text = "保存到数据库"
'
'Button5
'
Me.Button5.Location = New System.Drawing.Point(456, 312)
Me.Button5.Name = "Button5"
Me.Button5.Size = New System.Drawing.Size(112, 32)
Me.Button5.TabIndex = 7
Me.Button5.Text = "从数据库中取图像"
'
'Button6
'
Me.Button6.Location = New System.Drawing.Point(456, 352)
Me.Button6.Name = "Button6"
Me.Button6.Size = New System.Drawing.Size(112, 32)
Me.Button6.TabIndex = 8
Me.Button6.Text = "Button6"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(600, 516)
Me.Controls.Add(Me.Button6)
Me.Controls.Add(Me.Button5)
Me.Controls.Add(Me.Button4)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.Button3)
Me.Controls.Add(Me.PictureBox1)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Name = "Form1"
Me.Text = "图象文件和XML格式文件互换例子"
Me.ResumeLayout(False)