日期:2014-05-18  浏览次数:21229 次

image转string
1、将image转成string;
C# code
using (MemoryStream stream = new MemoryStream())
         {
             PictureBox pb = c as PictureBox;
             pb.Image.Save(stream, ImageFormat.Jpeg);
             byte[] by = stream.ToArray();
             string s = System.Convert.ToBase64String(by);
          }


2、将string保存至外部
3、读取外部string转成image,pictruebox也能显示图片
C# code

PictureBox pb = new PictureBox();
byte[] b = System.Convert.FromBase64String(xnChild.Attributes["Image"].InnerText);
using (MemoryStream ms = new MemoryStream(b))
{
    Image myimge = Image.FromStream(ms);
    pb.Image = myimge;
    pb.BorderStyle = BorderStyle.FixedSingle;
    pb.SizeMode = PictureBoxSizeMode.StretchImage;
}


4、再执行第1步,提示出错“GDI+ 中发生一般性错误。”

请问为什么?

------解决方案--------------------
using (MemoryStream ms = new MemoryStream(b))
请勿滥用using,第三步中的using必须去掉,那个ms不能释放,一旦释放,图片将一起被释放。Image.FromXXX方法的参数必须始终保持而不释放。