【问题标题】:MVC - Load an image from URL into a bitmap. (async await)MVC - 将图像从 URL 加载到位图中。 (异步等待)
【发布时间】:2014-08-08 06:13:58
【问题描述】:

我想从服务器端的 URL 加载图像,并尽可能使用 await 语法。

在 WPF 应用程序中我可以这样做:

var image = new BitmapImage(new Uri("http://..."));               
image.ImageOpened += (s, e) =>
 {
 }

相反,在 MVC 中,我有默认的 System.Drawing.Bitmap,它没有从 URL 加载的选项。

我应该:

  1. 添加对 System.Windows.Media.Imaging 的引用并使用 BitmapImage 用 TaskCompletionSource 包装它的类。

  2. 不知何故使用 Bitmap 类加载图像。

使用上述之一和异步/等待的工作代码会很棒。

【问题讨论】:

    标签: c# asp.net-mvc-4 bitmap asp.net-mvc-5 async-await


    【解决方案1】:

    应该很简单:

    private Task<Stream> GetStreamAsync()
    {
        var httpClient = new HttpClient();
        return httpClient.GetStreamAsync(@"http://urlhere");
    }
    

    然后调用它:

    private async Task GetImageAndDoStuff()
    {
       Stream imageStream = await GetStreamAsync();
       using (Bitmap bitmap = new Bitmap(Image.FromStream(imageStream)))
       {
    
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-10
      • 2012-04-04
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      相关资源
      最近更新 更多