从URL获取图像并转换为字节数组

81

我有一个带有图片的超链接。

我需要从该超链接中读取/加载图像,并将其分配给C#中的字节数组(byte[])。

谢谢。

3个回答

177

WebClient.DownloadData 是最简单的方法。

string someUrl = "http://www.google.com/images/logos/ps_logo2.png"; 
using (var webClient = new WebClient()) { 
    byte[] imageBytes = webClient.DownloadData(someUrl);
}

1
WebClient现在已经过时。请参考@Dunc的答案中的HttpClient版本,作为现代替代方案。 - Peter David Carter

13
如果您需要一个异步版本:
using (var client = new HttpClient())
{
    using (var response = await client.GetAsync(url))
    {
        byte[] imageBytes =
            await response.Content.ReadAsByteArrayAsync().ConfigureAwait(false);
    }
}

4

.NET 4.5 引入了WebClient.DownloadDataTaskAsync()方法,用于异步使用。

示例:

using ( WebClient client = new WebClient() )
{
  byte[] bytes = await client.DownloadDataTaskAsync( "https://someimage.jpg" );
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接