如果链接末尾没有图像格式,是否可以从c#中的URL直接下载图像?网址示例:
https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-xpf1/v/t34.0-12/10555140_10201501435212873_1318258071_n.jpg?oh=97ebc03895b7acee9aebbde7d6b002bf&oe=53C9ABB0&__gda__=1405685729_110e04e71d969d392b63b27ec4f4b24a
当网址以图片格式结尾时,我知道如何下载图片。例如:
http://img1.wikia.nocookie.net/__cb20101219155130/uncyclopedia/images/7/70/Facebooklogin.png
只需 使用以下方法即可。
using (WebClient client = new WebClient()) { client.DownloadFile(new Uri(url), @"c:\temp\image35.png"); // OR client.DownloadFileAsync(new Uri(url), @"c:\temp\image35.png"); }
这些方法与DownloadString(..)和DownloadStringAsync(…)几乎相同。他们将文件存储在目录中,而不是C#字符串中,并且不需要URi中的格式扩展名
public void SaveImage(string filename, ImageFormat format) { WebClient client = new WebClient(); Stream stream = client.OpenRead(imageUrl); Bitmap bitmap; bitmap = new Bitmap(stream); if (bitmap != null) { bitmap.Save(filename, format); } stream.Flush(); stream.Close(); client.Dispose(); }
try { SaveImage("--- Any Image Path ---", ImageFormat.Png) } catch(ExternalException) { // Something is wrong with Format -- Maybe required Format is not // applicable here } catch(ArgumentNullException) { // Something wrong with Stream }