如何在Javascript中将缓冲区对象转换为图像?
我只是尝试将图像作为缓冲区添加到mongodb,并尝试将其转换回图像。 在ejs中,它运行良好如何在Javascript中将缓冲区对象转换为图像?,javascript,arrays,node.js,Javascript,Arrays,Node.js,我只是尝试将图像作为缓冲区添加到mongodb,并尝试将其转换回图像。 在ejs中,它运行良好 src=“数据:图像/png;base64,” 这是我在ejs中使用的代码 但当我试图通过纯js将其附加到元素时,它显示了错误 $('#two').prepend($('<img>',{id:'theImg2',src:`data:image/png;base64,${ selected[0].image2.data.toString('base64')}`})) $('#2')。前置(
src=“数据:图像/png;base64,”
这是我在ejs中使用的代码
但当我试图通过纯js将其附加到元素时,它显示了错误
$('#two').prepend($('<img>',{id:'theImg2',src:`data:image/png;base64,${ selected[0].image2.data.toString('base64')}`}))
$('#2')。前置($('
这是我在纯js中使用的代码。
这是我在js中安慰的对象
这就是错误
谢谢!在JavaScript中没有存在于Node.js缓冲区中的.toString('base64')
,因此您只需在对象上调用.toString
,它将确实输出:[Object Object]
,这就是您得到的
Node.jsbuffer.toString('base64')
的等价物是:
function toBase64(arr) {
//arr = new Uint8Array(arr) if it's an ArrayBuffer
return btoa(
arr.reduce((data, byte) => data + String.fromCharCode(byte), '')
);
}
$('#two').prepend($('<img>',{id:'theImg2',src:`data:image/png;base64,${toBase64( selected[0].image2.data)}`}))
功能toBase64(arr){
//arr=如果是ArrayBuffer,则为新的Uint8Array(arr)
返回btoa(
arr.reduce((数据,字节)=>data+String.fromCharCode(字节),“”)
);
}
$('#two').prepend($('什么错误,您没有显示它。哦,抱歉。现在已编辑。哪里是:image2.data
来自?使用nodejs从MongoDB获取数据并使用ejs传递到javascript。然后在过滤后尝试追加图像。