[已解决问题] 把Bitmap xml序列化过程中发生的怪怪问题,求解答。
提问时间: 2008-07-24 17:33
悬赏分:50 浏览:116 次
我想把一个图片通过xml序列化的形式转换成一个xml文件。

我代码是这么写的:
Bitmap bmp = new Bitmap("baby.jpg");
XmlSerializer ser = new XmlSerializer(typeof(Bitmap));
// XML序列化
stream = new FileStream(@"users.xml", FileMode.Create, FileAccess.Write, FileShare.Read);
ser.Serialize(stream, bmp);
stream.Close();

// XML反序列化
stream = new FileStream(@"users.xml", FileMode.Open);
MyObject obj2 = (MyObject)ser.Deserialize(stream);
tream.Close();

其中,xml序列化部分没有异常,但一个28k的图片,序列化后得到的xml文件才1k,明显不对,而且用这个xml文件进行反序列化的时候MyObject obj2 = (MyObject)ser.Deserialize(stream);这行代码会出现异常,提示:XML 文档(4, 3)中有错误。参数无效。

开始序列化得到的xml文件内容是:
<?xml version="1.0"?>
<Bitmap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Palette />
</Bitmap>


请问问题处在哪里,如何修改?
提问者:i.Posei - 初学一级
所有回答(4)
可以这么做,把图片转换成base64的字符串,然后写到文件中,反序列化时执行相反操作。 下面有一段序列化的代码: http://west263.com/info/html/wangluobiancheng/Xmlbiancheng/20080224/15848.html
1个月前   回答者:玉开 - 大侠五级
为啥 不用二进制序列化~~~
1个月前   回答者:沙加 - 老鸟四级
所谓的可序列化, 是针对 二进制的 XML序列化 用的是另一个关键字
1个月前   回答者:G yc {Son of VB.NET} - 小虾三级

1个月前   回答者:林间曦阳 - 小虾三级
评论
1个月前   i.Posei :
Bitmap 这个类是可序列化的,但为什么不能直接这么做呢?
1个月前   玉开 :
因为Bitmap类没有一个公共的属性显示它的图像数据
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关链接