Autor Beitrag
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 16.12.09 16:18 
Hallo,

ich versuche gerade Metadaten mit Binärdaten (image) in ein Xml (Unicode) zu bekommen. Leider funktioniert es nicht wirklich.

Ich kann die Daten mit einem XmlWriter abspeichern. Aus Bequemlichkeit verwende ich zum Einlesen einen XmlDocument - soweit so gut. Problem nun, wenn ich die Binärdaten einzulesen und anschließend sie zu verarbeiten gibt es Probleme. Ich vermute beim de/encoden geht irgendwo was falsch. Hab keine Idee mehr :(

Hier ein paar Codenippels zum

Speichern)
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
         XmlWriterSettings settings = new XmlWriterSettings();
            settings.Encoding = Encoding.Unicode;
            XmlWriter writer = XmlWriter.Create(stream, settings);

writer.WriteBase64(this.ImageRawData.GetBuffer(), 0, (intthis.ImageRawData.Length);


Laden)
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
            XmlNode imageNode = (XmlNode) doc.SelectSingleNode(@"/jigsaw/image");

            this.ImageRawData = new MemoryStream();
            byte[] imageRawData = Encoding.Unicode.GetBytes(imageNode.OuterXml);
            this.ImageRawData.Write(imageRawData, 0, imageRawData.Length);


Wüßte nicht was schief geht :/ Aber bin vor lauter Varianten auch schon ganz verwirrt, wäre schön, wnen mir einer das Licht zeigt ;)

Gruß Daniel
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 16.12.09 16:23 
Du verschweigst leider, was das denn für Probleme sind, die da entstehen, aber spontan würde ich sagen: Wenn Du dann als Base64 kodiert speicherst, musst sie danach erst einmal wieder dekodieren, oder? :gruebel:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
danielf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 16.12.09 16:30 
Ja, das klingt logisch. Leider verwende ich beim Laden eben das XmlDocument und ich habe keinen passenden Stream/Position von der aus ich dem Pendant zum XmlWriter, dem XmlReader sagen könnte los ReadBase64 ... :/

Bei den Binärdaten handelt es sich um den Inhalt eines Bildes (byte[] imageBuffer = File.ReadAllBytes(file.FullName);). Der Fehler tritt dann ein, wenn ich versuche aus den gespeicherten und den geladen Daten versuche ein Bitmap zu laden.
danielf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 16.12.09 16:36 
Jippi, hab was gefunden :D

Von dotnet-snippets.de/d...-zurueck-SID958.aspx:
ausblenden C#-Quelltext
1:
byte[] buffer = Convert.FromBase64String(base64String);					


bzw.
ausblenden C#-Quelltext
1:
string output = Convert.ToBase64String(buffer, Base64FormattingOptions.InsertLineBreaks);