从数据库里面读取的图片信息:buffer
  MemoryStream stream = new MemoryStream(buffer,0,buffer.Length);
  System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
  img.Save(filepath); 
可是第2行:System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
总提示:Parameter is not valid.,请帮忙如何解决

解决方案 »

  1.   


                byte[] data = File.ReadAllBytes(@"E:\123.jpg"); 
                MemoryStream ms = new MemoryStream(data);
                Image img = Image.FromStream(ms);
                img.Save(@"E:\bb\123.jpg");试了没问题  你确定stream正确获取了? 
      

  2.   

    byte[] img = new byte[0];img = (byte[])attach.Accessory_Data;
    Response.BinaryWrite(img);
    正好做过楼主说的东东,注释一下:Accessory_Data是你数据库里二进制数据的那个字段
      

  3.   

    断点调试下,看看buffer里的内容
                String filepath = "E:\\100.jpg";
                byte[] buffer = null;
                using (FileStream fs = new FileStream("E:\\1.jpg", FileMode.Open, FileAccess.Read))
                {
                    buffer = new byte[(int)fs.Length];
                    fs.Read(buffer, 0, buffer.Length);
                    fs.Close();
                }
                using (MemoryStream stream = new MemoryStream(buffer, 0, buffer.Length))
                {
                    Image img = Image.FromStream(stream);
                    img.Save(filepath);
                    stream.Close();
                }
      

  4.   

    byte[] data = File.ReadAllBytes(@"E:\123.jpg");这样测试是OK的,难道是stream的问题?我的方法是这样:
    select ImageData from table
    buffer= (byte[])dr["ImageData"]; MemoryStream stream = new MemoryStream(buffer,0,buffer.Length);
      System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
      img.Save(filepath);
      

  5.   

    http://topic.csdn.net/u/20090223/12/d67acacb-48f9-4cd0-9b0e-006704e81e92.html
    看看这个帖子吧 看看可有什么帮助
      

  6.   

    参数无效,有可能是图片的memery数据信息有问题
    所以显示不能把二进制的数据转换成图片
    重新保存一个二进制图片看看