У меня есть byte[]
, который был сериализован с помощью следующего кода:
// Save an object out to the disk
public static void SerializeObject<T>(this T toSerialize, String filename)
{
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
TextWriter textWriter = new StreamWriter(filename);
xmlSerializer.Serialize(textWriter, toSerialize);
textWriter.Close();
}
Проблема в том, что сериализованные данные выглядят следующим образом:
iVBORw0KGgoAAAANSUhEUgAAAPAAAAFACAIAAAANimYEAAAAAXNSR0IArs4c6QAAAARnQU1BAACx......
, когда они сохраняются в моемБаза данных выглядит так:
0x89504E470D0A1A0A0000000D49484452000000F00000014008020000000D8A660400000001......
В чем разница, и как я могу получить данные с диска обратно в byte[]
?
Примечание: данные имеют формат Bitmap
, отформатированный в виде png:
public byte[] ImageAsBytes
{
get
{
if (_image != null)
{
MemoryStream stream = new MemoryStream();
_image .Save(stream, ImageFormat.Png);
return stream.ToArray();
}
else
{
return null;
}
}
set
{
MemoryStream stream = new MemoryStream(value);
_image = new Bitmap(stream);
}
}