如何从网址下载图片 [英] How to download image from url
本文介绍了如何从网址下载图片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果链接末尾的URL没有图像格式,是否可以从C#中的URL直接下载图像?网址示例:
https://fbcdn-sphotos-ha.akamaihd.net/hphotos-ak-xpf1/v/ t34.0-12 / 10555140_10201501435212873_1318258071_n.jpg?oh = 97ebc03895b7acee9aebbde7d6b002bf& oe = 53C9ABB0& __ gda __ = 1405685729_110e04e71d969d392b63b27ec4f4b24a
$ b $$ $ c $>当网址以图片格式结尾时,我知道如何下载图片。例如: http://img1.wikia.nocookie.net/__cb20101219155130/uncyclopedia/images/7/70/Facebooklogin。 png
解决方案 简单
您可以使用以下方法。
使用(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中的格式扩展名。
如果您不知道Format(.png,.jpeg等)的图像
public void SaveImage(字符串文件名,ImageFormat格式)
{
WebClient客户端=新的WebClient();
流stream = client.OpenRead(imageUrl);
位图位图;位图=新的位图(流);
if(位图!=空)
{
bitmap.Save(文件名,格式);
}
stream.Flush();
stream.Close();
client.Dispose();
}
使用
try
{
SaveImage(-任何图像路径---,ImageFormat.Png)
}
catch(ExternalException)
{
//格式有误-可能是必需的格式不是
//适用于此处
}
catch( ArgumentNullException)
{
//流
出问题}
Is there a way to download an image directly from a url in c# if the url does not have an image format at the end of the link? Example of 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
I know how to download the image when the url ends with an image format. Eg:
http://img1.wikia.nocookie.net/__cb20101219155130/uncyclopedia/images/7/70/Facebooklogin.png
解决方案 Simply
You can use following methods.
using (WebClient client = new WebClient())
{
client.DownloadFile(new Uri(url), @"c:\temp\image35.png");
// OR
client.DownloadFileAsync(new Uri(url), @"c:\temp\image35.png");
}
These methods are almost same as DownloadString(..) and DownloadStringAsync(...). They store the file in Directory rather than in C# string and no need of Format extension in URi
If You don't know the Format(.png, .jpeg etc) of Image
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();
}
Using it
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
}
这篇关于如何从网址下载图片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文