![](/img/trans.png)
[英]how to convert binary data to image and display in Div Tag or img Tag?
[英]How to pass image data to img tag?
我有以下 html 元素:
<img src='profilePic?userName' class='form-avatar'></img>
我的 controller 有这个方法:
[System.Web.Mvc.HttpGet]
public async Task<ActionResult> profilePic()
{
string userName = Request.Url.ToString().Split('?').Last();
string profilePic = await GraphHelper.GetProfilePicAsync(userName);
return Content(profilePic);
}
profilePic 的内容是
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
但是图像标签不加载图像,当我检查它时,它显示:
<img src='profilePic?userName' class='form-avatar'></img>
当我想要的是
<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' class='form-avatar'></img>
我如何实现这一目标?
“ data:image/png;base64,...
”是图像的 base64 编码,允许您将其直接嵌入到 HTML 中。如果您想通过 URL 引用它,则需要返回实际的二进制信息通过将其从 base64 转换为原始形式。
// Your code
var profilePicEncoded = profilePic.Replace("data:image/png;base64,", "");
var bytes = Convert.FromBase64String(profilePicEncoded);
return File(bytes , "image/png");
这将返回一个二进制 png 图像,然后可以自由嵌入。
Ehhhrm .. 这不会起作用,因为当你做这样的事情时:
<img src="http://blah.com/logo.png">
你的浏览器没有下载logo.png,base64吧,插入到DOM中的src属性,然后解释显示
换句话说,在 src 中你要么输入:
如果你做后者,那么 base64 png 数据将在 html 发送到浏览器时插入到 html 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.