【问题标题】:.NET-Core byte array to Image.NET-Core 字节数组到图像
【发布时间】:2017-06-13 10:57:11
【问题描述】:

如何在 .NET Core 中将 byte[] 转换为图像?

我找到this

using (var ms = new MemoryStream(byteArrayIn))
{
    return Image.FromStream(ms);
}

但似乎Image 不存在于.NET-Core 中。

【问题讨论】:

  • 不,确实它还没有发布。您可以使用库 ImageSharp
  • 哦,这很奇怪。如果您愿意回答这个问题,我可以将其标记为正确
  • 问题中的代码现在在.NET-Core 中可以正常工作。
  • @ZbigniewWiadro 很高兴听到这个消息 :-) 你应该回答这个问题

标签: asp.net-core .net-core


【解决方案1】:

不,确实它还没有发布。你可以使用库ImageSharp

【讨论】:

    【解决方案2】:

    要从字节数组返回图像,您可以:

    1. 返回base64

      Byte[] profilePicture = await _db.Players
                                       .Where(p => p.Id == playerId)
                                       .Select(p => p.ProfilePicture)
                                       .FirstOrDefaultAsync();
      
      return Ok(Convert.ToBase64String(profilePicture));
      

      然后您可以使用任何将base64转换为图像的online tool进行测试。

    2. 或返回FileContentResult File(byte[] fileContents, string contentType)

      return File(profilePicture, "image/png");
      

      您应该能够从 Postman 或任何类似的东西中对此进行测试,因为图片将显示在那里的响应正文中。

    【讨论】:

      【解决方案3】:

      如果您使用的是 javascript

      img 标签:

      html

      <img id="logoPic" src="" />
      

      js:

      document.getElementById("logoPic").src = "data:image/png;base64," + yourByte;
      

      使用插入单元:

      row.insertCell(2).innerHTML = "<img src='" + "data:image/png;base64," + yourByte + "'></>";
      

      与 td:

      "<td>"+ "<img src='" + "data:image/png;base64," + yourByte + "'></>" + "</td>"
      

      如果您使用的是 jquery:

      html

      <img id="logoPic" src="" />
      

      JQuery:

      $('#logoPic').attr('src', `data:image/png;base64,${YourByte}`);
      

      【讨论】:

        猜你喜欢
        • 2022-01-27
        • 1970-01-01
        • 2012-07-28
        • 1970-01-01
        • 2012-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        相关资源
        最近更新 更多