Image.FromStream(stream1) 将数据流转成图片时报错:内存不足

将数据流转成图片时报错,内存不足,不知道怎么处理,求大神指点

 //解析json串
                JObject JsonTrackData = (JObject)JsonConvert.DeserializeObject(TrackData);
                //获取imageInfo
                string imgStrData = JsonTrackData["result"]["imageInfo"].ToString();
                //得到图片字节码
                    //Base6解码
                    byte[] bytes_data = Convert.FromBase64String(imgStrData);
                    string urlData = Server.MapPath("~/TrackImage/Data.png");
                    MemoryStream stream1 = new MemoryStream(bytes_data);

                    Bitmap btm = new Bitmap(stream1);

                    stream1.Position = 1333300;
                    System.Drawing.Image imgData = Image.FromStream(stream1);//报错内存不足
                    imgData.Save(urlData, System.Drawing.Imaging.ImageFormat.Png);//xxx.jpeg为文件名

 <img src="data:image/jpeg;base64,这里加还没有解码的imgStrData">

将图像以二进制流形式存储到数据库中示例
protected void imgbtnCreate_Click(object sender, ImageClickEventArgs e)
{

    string PerHomeName=tbPerHomeName.Text;//获取空间名

    string PerHomeSign=txtPerSign.Text; //获取个性签名

    string imgPath = uploadFile.PostedFile.FileName;//获取文件件名

    string lastName = imgPath.Substring(imgPath.LastIndexOf(".") + 1);//获取文件上传后缀名
    SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
    conn.Open();
    if (uploadFile.PostedFile.FileName != "" && lastName.ToLower() == "jpg" || lastName.ToLower() == "gif")
    {
        if (uploadFile.PostedFile.ContentLength > 40960)
        {
            Response.Write("<script language='javaScript'>alert('你上传的图片超过了40KB!')</script>");
            return;
        }
        int imgLength = uploadFile.PostedFile.ContentLength;//获取上传文件大小
        Byte[] imageData = new Byte[imgLength]; //定义Byte数组
        HttpPostedFile hp = uploadFile.PostedFile;//创建访问客户端上传文件的对象
        Stream imagestream = hp.InputStream;//创建数据流对象
        //将图片数据放到image数据对象实例中,其中0代表数组指针的起始位置,imagelength表示要读取流的长度
        imagestream.Read(imageData, 0, imgLength);
        string sqlstr = "insert into PerHomeDetail(PerHomeName,PerHomeSign,PerHomeLogo)values('" + PerHomeName + "','" + PerHomeSign + "',@ImageData)";
        SqlCommand comm = new SqlCommand(sqlstr, conn);
        comm.Parameters.Add("@ImageData", SqlDbType.Image);
        comm.Parameters["@ImageData"].Value = imageData;
        comm.ExecuteNonQuery();
        conn.Close();
        Response.Write("<Script>alert('个人空间创建成功!')</Script>");
    }
    else
    {
        Response.Write("<script>alert('上传头像不能为空,且格式必须为gif或jpg!');location='javascript:history.go(-1)'</script>");
    }
}

    转自:http://bbs.csdn.net/topics/390932070

将图片分多个子包吧,每个包一个标识,分包下载

没人回自己顶一下,byte[] bytes_data 里面长度是9万多,应该不是很大呀

问题解决了,因为单个数据是在太大,直接绑定在页面的里,以前都不知道还有这种写法