I am getting a XML File to generate a preview, in a format like this:
<PARAM>
<LABEL>Preview 16x16</LABEL>
<ID>{03F5C6D3-ABCD-4889-B3AA-C3524C62FA1C}</ID>
<LAYER>-1</LAYER>
<VALUE>
<BLOB>
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8S
EhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEU
Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAAR
CAAOABADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDP+IXxH+Ilr4/1DRrLxZqUrjUTbMLKdtsz
eZgLCgHyDHy4GSeee9dT4Z8G/FjxHrmla3Y3bRlRtl1iW9ztGTnlXLS47YG0nrXQa78Bda07
U7jXNM1nS9yGVhJLHJvk8wkEkchWAYjcuDzxggGuB8K6v49i8X28Wg+IodMkaUQFI4sQSEt1
eM5B42qOPlVVVcAV5M8NKdSMW/cV3vrfXyb/AB/I+4+sVUnPCUVeyV3Z3010923krdPU/9k=
</BLOB>
</VALUE>
</PARAM>
I need to convert the <BLOB> section into an Image. I access the Element Value like this:
string clean = valueC.ElementAt(0).Value.Replace("\t", string.Empty).Replace("\n", string.Empty);
I’ve tried to read it into a MemoryStream and convert to Image:
MemoryStream ms = new MemoryStream(blob, 0, blob.Length);
ms.Write(blob, 0, blob.Length);
Image i = Image.FromStream(ms);
In this way I get “Parameter not valid exception” at getting the Image.
I’ve also tried to save it directly into a File:
using (FileStream fs = new FileStream(label + ".jpg", FileMode.Create))
{
fs.Write(blob, 0, blob.Length);
}
But when I try to open the generated file, displays a message about damage in it.
I know that encoding is important, I’ve already tried ASCII, UTF-8, UTF-7 and this:
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, clean);
ms.Seek(0, 0);
byte[] blob = ms.ToArray();
I dont know what else to do. I’ll appreciate if somebody can help me.
Thanks
It seems your data is in Base64 format so you first need to decode it and then save it as an image.