.NET Core 字节数组到映像



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

我发现这个:

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

但似乎Image .NET-Core不存在.

不,它还没有发布。 您可以使用库 ImageSharp。

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

  1. 返回基地64

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

    然后,您可以使用任何将base64转换为图像的在线工具来对其进行测试。

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

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

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

您需要安装 System.Drawing.Common NuGet 包。然后你可以使用下一个函数:

    public static System.Drawing.Image ImageFromByteArray(byte[] src)
    {
        MemoryStream ms = new MemoryStream(src);
        System.Drawing.Image retval = System.Drawing.Image.FromStream(ms);
        return retval;
    }

如果你正在使用javascript

图片标签:

.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}`);

最新更新