How do I programmatically save an image from a URL?

后端 未结 4 596
星月不相逢
星月不相逢 2020-11-30 22:05

How do I programmatically save an image from a URL? I am using C# and need to be able grab images from a URL and store them locally. ...and no, I am not stealing :)

4条回答
  •  情深已故
    2020-11-30 22:45

    You just need to make a basic http request using HttpWebRequest for the URI of the image then grab the resulting byte stream then save that stream to a file.

    Here is an example on how to do this...

    'As a side note if the image is very large you may want to break up br.ReadBytes(500000) into a loop and grab n bytes at a time writing each batch of bytes as you retrieve them.'

    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();
                }
            }
        }
    }
    

提交回复
热议问题