网络图片下载并转为byte[]

/// <summary>
        /// 图片下载
        /// </summary>
        /// <param name="dt"></param>
        public static void Down_load_Invoice_Image(DataTable dt)
        {
            string url = "http://www.baidu.com/upimg/xmimg/";
            //if (ObjectToBytes(dt1.Rows[i]["frontPic"]).Length <= 256)
            //{
            try
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    //WebRequest requests = WebRequest.Create(url + Convert.ToString(dt.Rows[i]["frontUrl"]));

                    //WebResponse resp = requests.GetResponse();
                    ////从网络资源中返回数据流
                    //Stream stream = resp.GetResponseStream();

                    Stream stream = WebRequest.Create(url + Convert.ToString(dt.Rows[i]["frontUrl"])).GetResponse().GetResponseStream();
                    //byte[] data = new byte[1024];
                    //int length = 0;
                    
                    //while ((length = stream.Read(data, 0, data.Length)) > 0)
                    //{
                    //    ms.Write(data, 0, length);
                    //}

                    Image img = Image.FromStream(stream);
                    Bitmap bitimg = new Bitmap(img);

                    MemoryStream ms = new MemoryStream();
                    bitimg.Save(ms, img.RawFormat);
                    byte[] data = new byte[ms.Length];
                    ms.Seek(0, SeekOrigin.Begin);//流指针回到最开始的地方,不然会出错
                    ms.Read(data, 0, data.Length);
                   

                    dt.Rows[i]["pic"] = data;
                    //dt.Rows[i]["pic"] = PhotoImageInsert(Image.FromStream(WebRequest.Create(url + Convert.ToString(dt.Rows[i]["frontUrl"])).GetResponse().GetResponseStream()));
                    dt.Rows[i]["number"] = i + 1;
                    string size = "";
                    if (dt.Rows[i]["basicId"].ToString() != "")
                    {
                        size = dt.Rows[i]["basicId"].ToString().Substring(9);
                    }
                    dt.Rows[i]["size"] = size;
                }

            }
            catch (Exception ex)
            {
            }
        }
 /// <summary>
        /// 图片转二进制
        /// </summary>
        /// <param name="imgPhoto"></param>
        /// <returns></returns>
        public static byte[] PhotoImageInsert(Image imgPhoto)
        {
            try
            {
                //将Image转换成流数据,并保存为byte[]
                MemoryStream mstream = new MemoryStream();
                imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Png);
                byte[] byData = new Byte[mstream.Length];
                mstream.Position = 0;
                mstream.Read(byData, 0, byData.Length);
                mstream.Close();
                return byData;
            }
            catch (Exception ex)
            {
                return new byte[0];
            }
        }

 

posted @ 2018-12-18 11:21  我是牙牙  阅读(1058)  评论(0)    收藏  举报