簡體   English   中英

如何以編程方式保存來自 URL 的圖像?

[英]How do I programmatically save an image from a URL?

如何以編程方式保存來自 URL 的圖像? 我正在使用 C# 並且需要能夠從 URL 抓取圖像並將它們存儲在本地。 ...不,我不是在偷:)

寫這樣的東西會更容易:

WebClient webClient = new WebClient();
webClient.DownloadFile(remoteFileUrl, localFileName);

您只需要使用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();
            }
        }
    }
}

aspx (c#) 中的一個例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.IO;

public partial class download_file_from_url : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string url = "http://4rapiddev.com/wp-includes/images/logo.jpg";
        string file_name = Server.MapPath(".") + "\\logo.jpg";

        save_file_from_url(file_name, url);

        Response.Write("The file has been saved at: " + file_name);
    }

    public void save_file_from_url(string file_name, string url)
    {
        byte[] content;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        WebResponse response = request.GetResponse();

        Stream stream = response.GetResponseStream();

        using (BinaryReader br = new BinaryReader(stream))
        {
            content = br.ReadBytes(500000);
            br.Close();
        }
        response.Close();

        FileStream fs = new FileStream(file_name, FileMode.Create);
        BinaryWriter bw = new BinaryWriter(fs);
        try
        {
            bw.Write(content);
        }
        finally
        {
            fs.Close();
            bw.Close();
        }
    }
}

添加一名作者
ASP.Net C# 從 URL 下載或保存圖像文件

我的解決方案是將圖像預先保存到磁盤,然后作為普通保存的圖像使用:

remoteFile = " http://xxx.yyy.com/image1.png "; localFile = "c:\\myimage.png";

WebClient webClient = new WebClient(); webClient.DownloadFile(remoteFile, localFile);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM