Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1841 | Besucher online: 1
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Bild als XML Datei Speichern


Autor: Volker Steitz
Sprache: VB.NET
Bewertung: 9
(1 Bewertung)
Anzahl der Aufrufe: 12780
  
Kick it on dotnet-kicks.de  

Beschreibung:

Manchmal ist nötig, Bilder im einem String zu speichern und wieder auszulesen - Beispielsweise dann, wenn der eingestzte Datenbankserver keine Images o.a. speichern kann.

Im folgenden Beispiel eine Klasse zum serialisieren und ein Beispiel zur Verwendung dieser Klasse.


Abgelegt unter: XML, Serialisieren.



Visual Basic
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
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Günther Foidl schrieb am:  24.09.2008 21:32:10

Ein Bild kann auch direkter in einen Base64-String gewandelt werden. Der Umweg über die XML-Serialisation ist nicht nötig. Ein C#-Snippet ist unter http://dotnet-snippets.de/dns/image-zu-base64-konvertieren-und-zurueck-SID958.aspx zu finden.


Diese Snippets könnten für Sie interessant sein:
[C#] Objekt in XML speichern (Serialisieren)
[C#] Treeview in XML schreiben
[ASP.net] XML - HTML Transformation
[C#] XML Encoding eines XmlDocument ändern
[C#] XMLDocument in XDocument konvertieren
[C#] Rss Feed in XMLDocument laden
[VB.NET] XML Datei in DataSet einlesen
[VB.NET] Objekt mit dem XmlSerializer serialisieren
[VB.NET] XML Datei mit dem XmlSerializer deserialisieren
[C#] Image zu Base64 konvertieren und zurück
[C#] Generische XML-Serialisierung
[C#] CSV und XML-Datei Datenbank-Import (incl. valid-check)
[C#] Währungskurse in Datenbank speichern
[VB.NET] Einfaches Erstellen einer XML Datei in .Net
[C#] XML in DataTable laden
[C#] Intellisense Unterstützung für XML Dateien für LINQ
[C#] user.config und generische Listen
[C#] Dataset verschlüsseln
[C#] Xml Datei entschlüsseln
[ASP.net] XML Daten über einen Internet Proxy abfragen
[C#] XML-Programmkonfiguration / -Steuerung
[C#] Formatieren von Sonderzeichen für XML
[C#] Binärdatei in XML File speichern
[C#] Binärdatei aus XML Datei auslesen und abspeichern
[C#] leere Knoten aus XML Document entfernen
[C#] XML Kommentare entfernen
[C#] Austauch von kritischen Zeichen in einem String...
[C#] Excel-Export ohne Excel (auch für Web)
[C#] Ini-Datei-Klasse
[C#] TreeView Export To Xml OR Import from XMl
[C#] Autom. Laden & Speichern von Position und Größe eines Forms
[C#] Ein Object serialisieren
[C#] Ein Object deserialisieren
[C#] Konvertiert Code nach Example für XML-Kommentar
[C#] XMLIO - einfachstes (De)serialisieren von/zu XML-Dateien
[C#] Generisch XML De-/ Serialisieren
[C#] XML generieren mit Linq to XML
[C#] 3 arten der Serialisierung bzw Deserialisierung
[C#] Spracherkennung
[C#] Wunderground Wettervorhersage
[C#] Mit LINQtoXML XML Dateien erzeugen bzw. abfragen
[C#] ini Datei anlegen - mit Dictionary
[C#] Typen mit dem XmlSerializer (de-)serialisieren
[C#] Font - Objekte binär serialisieren und deserialisieren
[C#] Zum De/Serialisieren von Objekten
[VB.NET] ByteArray mit dem BinaryFormatter deserialisieren
[VB.NET] Objekt mit dem BinaryFormatter serialisieren
[C#] Image in string wandeln und zurück
[C#] Serialisiert Typ in ein komprimiertes bytearray

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.