Я получаю файл XML для генерации предварительного просмотра в формате, подобном следующему:
<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>
Мне нужно преобразовать секцию <BLOB>
в изображение. Я получаю доступ к значению элемента следующим образом:
string clean = valueC.ElementAt(0).Value.Replace("\t", string.Empty).Replace("\n", string.Empty);
Я пытался прочитать его в MemoryStream и преобразовать в Image:
MemoryStream ms = new MemoryStream(blob, 0, blob.Length);
ms.Write(blob, 0, blob.Length);
Image i = Image.FromStream(ms);
Таким образом, я получаю «Параметр не является допустимым исключением» при получении изображения.
Я также пытался сохранить его непосредственно в файл:
using (FileStream fs = new FileStream(label + ".jpg", FileMode.Create))
{
fs.Write(blob, 0, blob.Length);
}
Но когда я пытаюсь открыть сгенерированный файл, отображается сообщение о повреждении в нем.
Я знаю, что кодирование важно, я уже пробовал ASCII, UTF-8, UTF-7 и это:
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, clean);
ms.Seek(0, 0);
byte[] blob = ms.ToArray();
Я не знаю, что еще делать. Буду признателен, если кто-нибудь сможет мне помочь.
Спасибо