1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
'Zuerst einmal die Klasse
Public Class clsSerialize
Public objImage As Object
<Xml.Serialization.XmlIgnore()> _
Public Property Image() As Image
Get
Dim strToByte() As Byte
strToByte = objImage
Return Image.FromStream(New System.IO.MemoryStream(strToByte))
End Get
Set(ByVal Value As Image)
Dim msMemoryStream As New System.IO.MemoryStream()
Value.Save(msMemoryStream, System.Drawing.Imaging.ImageFormat.Png)
Dim myByte(msMemoryStream.Length - 1) As Byte
msMemoryStream.Position = 0 : msMemoryStream.Read(myByte, 0, msMemoryStream.Length)
objImage = myByte
End Set
End Property
End Class
'Gehen wir nun zum Aufruf.
'Imn diesem Beispiel existiert ein Formular
'mit einer Picturebox und 3 Buttons
Imports System
Imports System.Drawing
Imports System.Xml.Serialization
Imports System.Xml
Public Class Form1
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
Dim ofd As New OpenFileDialog
With ofd
.ShowDialog()
If .FileName <> "" Then
Me.PictureBox1.Image = Image.FromFile(ofd.FileName)
End If
End With
End Sub
Private Sub btnSaveToXml_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveToXml.Click
Dim dlgSave As New SaveFileDialog
With dlgSave
.AddExtension = True
.Filter = "XML|*.xml"
.DefaultExt = "xml"
.InitialDirectory = My.Application.Info.DirectoryPath
.ShowDialog()
Try
If .FileName <> "" Then
Dim Serialize As New clsSerialize()
Serialize.Image = Me.PictureBox1.Image
Dim serializer As New Xml.Serialization.XmlSerializer(GetType(clsSerialize))
Dim xmlWriter As New XmlTextWriter(.FileName, System.Text.Encoding.UTF8)
xmlWriter.Formatting = Formatting.Indented
serializer.Serialize(xmlWriter, Serialize)
xmlWriter.Close()
MessageBox.Show("Serialization Complete", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End With
End Sub
Private Sub btnReadFromXML_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadFromXML.Click
Dim ofd As New OpenFileDialog
With ofd
Dim deSerialize As clsSerialize
Dim deSerializer As New Xml.Serialization.XmlSerializer(GetType(clsSerialize))
.ShowDialog()
If .FileName <> "" Then
deSerialize = deSerializer.Deserialize(New XmlTextReader(.FileName))
Me.PictureBox1.Image = deSerialize.Image
End If
End With
End Sub
End Class
|