C#根据图片url保存图片到本地

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
  public static class SaveImgByUrl
  {
    /// <summary>
    /// 调用方法
    /// </summary>
    public static void SaveImg()
    {
      string imgurl = "https://img0.baidu.com/it/u=2229864841,4232235061&fm=26&fmt=auto";//图片地址
      string imgfile = "D:\\1.png";
      WriteBytesToFile(imgfile, GetBytesFromUrl(imgurl));
    }

    /// <summary>
    /// 将数据流转化为图片保存到本地
    /// </summary>
    /// <param name="fileName"></param>
    /// <param name="content"></param>
    static public void WriteBytesToFile(string fileName, byte[] content)
    {
      FileStream fs = new FileStream(fileName, FileMode.Create);
      BinaryWriter w = new BinaryWriter(fs);
      try
      {
        w.Write(content);
      }
      finally
      {
        fs.Close();
        w.Close();
      }
    }

    /// <summary>
    /// 根据url将图片转化为数据流
    /// </summary>
    /// <param name="url"></param>
    /// <returns></returns>
    static public byte[] GetBytesFromUrl(string url)
    {
      byte[] b;
      HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
      WebResponse myResp = myReq.GetResponse();
      Stream stream = myResp.GetResponseStream();
      using (BinaryReader br = new BinaryReader(stream))
      {
        b = br.ReadBytes(500000);
        br.Close();
      }
      myResp.Close();
      return b;

    }


  }
}

 

posted @ 2021-10-22 16:31  亦承  阅读(1827)  评论(0)    收藏  举报