来自url的图像到字节数组

时间:2011-01-05 00:01:03

标签: c#

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

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

感谢。

3 个答案:

答案 0 :(得分:130)

WebClient.DownloadData是最简单的方式。

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

第三方编辑:请注意,WebClient是一次性的,因此您应该使用using

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

答案 1 :(得分:1)

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

示例:

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

答案 2 :(得分:0)

如果您需要异步版本:

using (var client = new HttpClient())
{
    using (var response = await client.GetAsync(url))
    {
        byte[] imageBytes = await response.Content.ReadAsByteArrayAsync().ConfigureAwait(false);
     }
}