Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中将缓冲区对象转换为图像?_Javascript_Arrays_Node.js - Fatal编程技术网

如何在Javascript中将缓冲区对象转换为图像?

如何在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')。前置(

我只是尝试将图像作为缓冲区添加到mongodb,并尝试将其转换回图像。 在ejs中,它运行良好

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.js
buffer.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。然后在过滤后尝试追加图像。