【问题标题】:Saving a GIF from a URL从 URL 保存 GIF
【发布时间】:2012-07-13 13:32:52
【问题描述】:

我想保存一个从 Internet 地址驱动的 GIF。 当我从浏览器请求文件时,我收到以下字符:

GIF87a½€ÿÿÿ,½þ„©Ëí£œ´Ú‹³Þ¼û†âH–æ‰Ádk
ÇòòµuÏú>æùôãEX¯–Ѝ²µ‚‰"<}O)Ò¨¬:kÜ'Õª]þ¢`ìc
­Ú”ìvöhe;Ï]¸;oßÂyþ|Þ‡µe§'hÄÔdhW÷§H#&gö¨ð…G™Gy(‰ x÷j†øyÙˆI8uJZZiª
™ªÚº¹i  {ç‰Zj™ˆwšµ7
©;é›9Æy¤VÄ$ú;œË›ÙÛI¬,œ=}|,l¼Û˧¸ìæ%]h~n»8»ÌíIv—Fe6¿‹¸®0YÉ
J7k8”•pÕá C¬4Èráâ;zü2¤È‘$Kš

我可以用这些字符检索 GIF 格式吗?

【问题讨论】:

  • 您将二进制信息打印为文本。
  • 您必须以二进制形式接收它。这只是二进制数据的文本表示,你不能用它制作 gif..

标签: c# image image-processing bitmap format


【解决方案1】:

GIF 是一个二进制文件。您不应该将其作为字符串阅读。将 GIF 读入 byte[],然后将这些字节保存到文件中。

【讨论】:

    【解决方案2】:

    这样做:

    string url = "http://address.com/getFile?s=1234";
    string filePath = @"c:\MyFolder\file.gif";
    
    using (WebClient client = new WebClient())
    {
         client.DownloadFile(url, filePath);
    }
    

    别忘了在开头加上这个:

    using System.Net;
    

    【讨论】:

      【解决方案3】:

      感谢您的回答。 我尝试了一种方法,我发现了问题

      HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
      request.Accept = "text/html, text/plain";
      request.AllowAutoRedirect = true;
      WebResponse response = request.GetResponse();
      Stream stream = response.GetResponseStream();
      StreamReader reader = new StreamReader(stream, Encoding.UTF8);
      Bitmap bmp = new Bitmap(Image.FromStream(stream, true, false));
      bmp.Save("image.gif");
      

      【讨论】:

        【解决方案4】:

        从我对文件格式和网络的了解来看,这些字符是 ASCII 或其他二进制编码的表示形式。您仍然可以使用BinaryWriter.Write() Method 保存它。

        【讨论】:

          猜你喜欢
          • 2017-05-17
          • 2014-02-05
          • 2015-11-18
          • 2019-05-26
          • 2020-04-18
          • 2014-12-07
          • 2016-09-12
          • 2016-01-08
          • 2014-12-22
          相关资源
          最近更新 更多