/// <summary>
/// 将图片序列化为字符串的方法
/// </summary>
/// <param name="_Image"></param>
/// <returns></returns>
private string SerializeImage(Image _Image)
{
string menuimage = "";
if (_Image != null)
{
SoapFormatter sf = new SoapFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
sf.Serialize(ms, _Image);
menuimage = System.Text.Encoding.Default.GetString(ms.ToArray());
ms.Close();
ms.Dispose();
}
return menuimage; }
/// <summary>
/// 将字符串反序列化为图像
/// </summary>
/// <param name="menuimage"></param>
/// <returns></returns>
private Image DeserializeImage(string menuimage)
{
Image _Image = null;
if (menuimage.Length > 0)
{
byte[] bytes = System.Text.Encoding.Default.GetBytes(menuimage);
SoapFormatter sf = new SoapFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
ms.Position = 0;
ms.Write(bytes, 0, bytes.Length);
_Image = (Image)sf.Deserialize(ms); ms.Close();
ms.Dispose();
}
return _Image;
} /// <summary>
/// 按钮事件,将指定的图片序列化为字符串,并赋值给窗体的RichTextBox
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
this.richTextBox1.Text = this.SerializeImage(this.pb.Image);
} /// <summary>
/// 按钮事件,将刚才序列化的字符串反序列化成图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_Click(object sender, EventArgs e)
{
this.pictureBox1.Image = this.DeserializeImage(this.richTextBox1.Text);
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
button3_Click事件将图像序列化成字符串没有问题,button4_Click 将字符串反序列化为图像报错 ,提示“缺少根元素”。
我查不出原因,请高手帮忙看看 ,在线等待,立刻结贴 ,谢谢 !!
/// 将图片序列化为字符串的方法
/// </summary>
/// <param name="_Image"></param>
/// <returns></returns>
private string SerializeImage(Image _Image)
{
string menuimage = "";
if (_Image != null)
{
SoapFormatter sf = new SoapFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
sf.Serialize(ms, _Image);
menuimage = System.Text.Encoding.Default.GetString(ms.ToArray());
ms.Close();
ms.Dispose();
}
return menuimage; }
/// <summary>
/// 将字符串反序列化为图像
/// </summary>
/// <param name="menuimage"></param>
/// <returns></returns>
private Image DeserializeImage(string menuimage)
{
Image _Image = null;
if (menuimage.Length > 0)
{
byte[] bytes = System.Text.Encoding.Default.GetBytes(menuimage);
SoapFormatter sf = new SoapFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
ms.Position = 0;
ms.Write(bytes, 0, bytes.Length);
_Image = (Image)sf.Deserialize(ms); ms.Close();
ms.Dispose();
}
return _Image;
} /// <summary>
/// 按钮事件,将指定的图片序列化为字符串,并赋值给窗体的RichTextBox
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
this.richTextBox1.Text = this.SerializeImage(this.pb.Image);
} /// <summary>
/// 按钮事件,将刚才序列化的字符串反序列化成图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_Click(object sender, EventArgs e)
{
this.pictureBox1.Image = this.DeserializeImage(this.richTextBox1.Text);
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
button3_Click事件将图像序列化成字符串没有问题,button4_Click 将字符串反序列化为图像报错 ,提示“缺少根元素”。
我查不出原因,请高手帮忙看看 ,在线等待,立刻结贴 ,谢谢 !!
解决方案 »
- 很简单的C# 问题??
- 经过SHA384的字符串怎么把他逆过来得到数据呢?
- 集合元素的存储与修改
- 如何表示只选中CheckBox1
- 调用Access的导入功能
- 求书 C#+SQL方面的书谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!
- 接口问题?
- 怎样创建Socket的长连接?
- 我创建了一个新的C#项目,是windows程序,然后就什么也没有了,没有窗体吗,我创建vb.net,vc.net也一样,是不是我的.net不行呀
- 为什么很多人说NET不如JAVA?
- 100分求助!!!!!我的网站在本地能运行,传到空间里面就不能运行了,www.wosaibiz.com
- Lucene 查询
你尝试一下吧0改为78!
如果成功我会告诉你原因,不成功就算了
呵呵
你尝试一下吧0改为78!
如果成功我会告诉你原因,不成功就算了
呵呵还是一样的错,缺少根元素
//对像写进流
MemoryStream streamw = new MemoryStream();
BinaryFormatter f = new BinaryFormatter();
f.Serialize(streamw, aIUserReg); //获取流字节
byte[] bytes = streamw.GetBuffer();
streamw.Read(bytes, 0, bytes.Length);
streamw.Close();
//反序列化 MemoryStream streamr = new MemoryStream();
//streamr.SetLength(bytes.LongLength);//可要,可不要
streamr.Write(bytes, 0, bytes.Length);
streamr.Position = 0;//>>>>>>>>>>>>>>>>>>>>这个也关键.
BinaryFormatter f2 = new BinaryFormatter();
aIUserReg = (IUserReg)f2.Deserialize(streamr); streamr.Close();给你改一下..你自己试试看....
命名空间:using System.Runtime.Serialization.Formatters.Binary;/// <summary>
/// 将图片序列化为字符串的方法
/// </summary>
/// <param name="_Image"> </param>
/// <returns> </returns>
private string SerializeImage(Image _Image)
{
string menuimage = "";
if (_Image != null)
{
BinaryFormatter sf = new BinaryFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
sf.Serialize(ms, _Image);
menuimage = System.Text.Encoding.Default.GetString(ms.ToArray());
ms.Close();
ms.Dispose();
}
return menuimage; }
/// <summary>
/// 将字符串反序列化为图像
/// </summary>
/// <param name="menuimage"> </param>
/// <returns> </returns>
private Image DeserializeImage(string menuimage)
{
Image _Image = null;
if (menuimage.Length > 0)
{
byte[] bytes = System.Text.Encoding.Default.GetBytes(menuimage);
BinaryFormatter sf = new BinaryFormatter();
System.IO.MemoryStream ms = new System.IO.MemoryStream();
ms.Position = 0;
ms.Write(bytes, 0, bytes.Length);
_Image = (Image)sf.Deserialize(ms); ms.Close();
ms.Dispose();
}
return _Image;
}