我目前正在从SQL Server数据库中读取一个图像为byte []。我想将图像作为byte []或真实图像传递给jQuery并动态加载它。
如何以及最佳方法是什么?
提前致谢。 :)
编辑:以下是解决方案:
string json = JsonConvert.SerializeObject(employee);
$('#image').attr('src', "data:image/jpg;base64,"+employee.Image);
答案 0 :(得分:9)
使用正确的内容类型集从Web服务器返回byte [],这样您就可以将其设置为图像标记的源。应该是最简单的解决方案。
答案 1 :(得分:7)
如果必须这样做,可以使用以下语法将图像数据直接插入src属性:
data:image/<type>;base64,<data>
替换为图像类型(jpg,png,gif)以及以base 64编码的数据。
然而,正如decyclone所说,最好的方法是创建一个仅输出图像数据的单独页面,并发送相应的内容类型标题。然后将图像src设置为指向该页面。
答案 2 :(得分:3)
我不认为使用 jQuery 是正确的做法。这是客户端的事情。 JavaScript,具体而言。
通常,您创建一个页面,使用Response.Write()
将所有这些字节写入数组,并根据图像类型将内容类型设置为jpeg,bmp等。
答案 3 :(得分:1)
我目前正在阅读JSON
响应中的图片。我想将这个编码的字符串传递给Jquery
模板上的图像控件并动态加载它,如何以及最好的方法是什么?模板如下:
<script id="ImageDiv" type="image/png">
<div style="width:200px;height:150px;>
<img src="${ImageView}" alt="" />
</div>
</script>
Js文件如下:
var demo = new Object();
$.each(msg.images, function (key, value)
{
if (this.IsImage)
{
demo["ImageView"]="data:image/png;base64,"+this.Image;
$('#ImageDiv').tmpl(demo).appendTo("#Demo-Image");
}
});
JSON
回复如下:
msg = {"Images":[ "Description": "Image1", "Image": "encoded string of image", "IsImage": true, "MimeType": "image/png", } ]
更少的空间来复制编码的图像字符串。