Hét vraag- en antwoordplatform van Nederland

Hoe kan ik een PNG afbeelding opslaan als XML?

Ik ben niet heel erg handig met computers, en ben bezig met een database van een spel. Om afbeeldingen toe te voegen moet ik van al mijn afbeeldingen (PNG) ook een XML-versie opslaan. Hoe kan ik dit makkelijk doen?

Verwijderde gebruiker
10 jaar geleden
2.5K
SimonV
10 jaar geleden
Bedoel je dit?
Verwijderde gebruiker
10 jaar geleden
@SimonV , volgens mij wel. Het is geen XML-versie, maar een verwijzing naar een afbeelding (.PNG .JPG .BMP kan allemaal).
Verwijderde gebruiker
10 jaar geleden
Nee, je kunt png bestanden als binary opslaan in een xml tussen een tag.... jullie zijn in de war met href links
Verwijderde gebruiker
10 jaar geleden
@j4ck1nth3b0x , volgens mij heb je gelijk, en ben ik in de war.

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (2)

Ik ben ook niet zo goed met computers,dus ik weet niet of het helpt.

Maar as ik een afbeelding wil opslaan als .bmp of .jpg bestand.

Dan kun je op alt+prt sc drukken als je de afbeelding voor je ziet.Daarna staat de afbeelding in je rechtermuisknop.Nu kun je hem in paint(of een ander picture programma plakken en opslaan.
(Lees meer...)
Verwijderde gebruiker
10 jaar geleden
Je kunt png embedden in een XML middels Base64 encoding, in normale byte order gaat het niet goed omdat XML geen formaat is voor binary data, je zult er speciaal een writer voor moeten schijven want niet veel programma's doen dit zo. Ik vond een voorbeeld in C#:

//Load the picture from a file
Image picture = Image.FromFile(@"c:\temp\test.gif");

//Create an in-memory stream to hold the picture's bytes
System.IO.MemoryStream pictureAsStream = new System.IO.MemoryStream();
picture.Save(pictureAsStream, System.Drawing.Imaging.ImageFormat.Gif);

//Rewind the stream back to the beginning
pictureAsStream.Position = 0;
//Get the stream as an array of bytes
byte[] pictureAsBytes = pictureAsStream.ToArray();

//Create an XmlTextWriter to write the XML somewhere... here, I just chose
//to stream out to the Console output stream
System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(Console.Out);

//Write the root element of the XML document and the base64 encoded data
writer.WriteStartElement("w", "binData",
"http://schemas.microsoft.com/office/word/2003/wordml");

writer.WriteBase64(pictureAsBytes, 0, pictureAsBytes.Length);

writer.WriteEndElement();
writer.Flush();

Toegevoegd na 2 minuten:
En dan ziet het er zo uit:



iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAYagMeiWXwAAAG9JREFUeJzt1jEKgDAMRuEnZGhPofc%2FVQSPIcTdxUV4HVLoUCj8H00o2YoBMF57fpz%2FujODHXUFRwPKBqj5DVigB041HiJ9gFyCVOMbsEIPXNwuAHkgiJL%2F4qABNqB7QAeUPBAE2QAZUDZAfwEb8ABSIBqcFg%2B4TAAAAABJRU5ErkJggg%3D%3D
(Lees meer...)
Verwijderde gebruiker
10 jaar geleden
Verwijderde gebruiker
10 jaar geleden
+

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding