如何以编程方式从URL保存图像?

53 .net c# image

如何以编程方式从URL保存图像?我正在使用C#,需要能够从URL中获取图像并将其存储在本地.......不,我不偷东西:)

Ale*_*lex 113

写这样的东西会更容易:

WebClient webClient = new WebClient();
webClient.DownloadFile(remoteFileUrl, localFileName);
Run Code Online (Sandbox Code Playgroud)

  • 嘿......但是没有更多的代码表明你更聪明? (34认同)
  • 很酷,不要忘记webclient的'Dispose()` (4认同)

Wil*_*son 30

您只需要使用HttpWebRequest为图像的URI 创建一个基本的http请求,然后获取生成的字节流,然后将该流保存到文件中.

这是一个如何做到这一点的例子......

'作为旁注,如果图像非常大,你可能想要将br.ReadBytes(500000)分解成一个循环,并在检索它们时一次抓取n个字节.

using System;
using System.IO;
using System.Net;
using System.Text;

namespace ImageDownloader
{
    class Program
    {
        static void Main(string[] args)
        {
            string imageUrl = @"http://www.somedomain.com/image.jpg";
            string saveLocation = @"C:\someImage.jpg";

            byte[] imageBytes;
            HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
            WebResponse imageResponse = imageRequest.GetResponse();

            Stream responseStream = imageResponse.GetResponseStream();

            using (BinaryReader br = new BinaryReader(responseStream ))
            {
                imageBytes = br.ReadBytes(500000);
                br.Close();
            }
            responseStream.Close();
            imageResponse.Close();

            FileStream fs = new FileStream(saveLocation, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            try
            {
                bw.Write(imageBytes);
            }
            finally
            {
                fs.Close();
                bw.Close();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)