如何在 .NET Core 中将byte[]
转换为图像?
我发现这个:
using (var ms = new MemoryStream(byteArrayIn))
{
return Image.FromStream(ms);
}
但似乎Image
.NET-Core
不存在.
不,它还没有发布。 您可以使用库 ImageSharp。
要从字节数组返回图像,您可以:
-
返回基地64
Byte[] profilePicture = await _db.Players .Where(p => p.Id == playerId) .Select(p => p.ProfilePicture) .FirstOrDefaultAsync(); return Ok(Convert.ToBase64String(profilePicture));
然后,您可以使用任何将base64转换为图像的在线工具来对其进行测试。
-
或返回 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}`);