如何在React.js中将二进制数据转换为图像?

时间:2019-05-18 17:19:47

标签: mern

我正在尝试显示已使用node&express在mongoDB中上传的react中的图像。 我正在节点中获取图像,但由于数据为二进制,因此在反应中我无法显示图像。
响应数据:

{"data":{"type":"Buffer","data":

[137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,205,0,0,0,205,8,3,0,0,

0,44,98,4,91,0,0,1,59,80,76,84,69,255,255,255,32,31,31,244,202,177,156,218,

240,124,186,230,0,0,0,....

我尝试了以下代码进行转换,但是没有用。

function hexToBase64(str) {
    return btoa(String.fromCharCode.apply(null, str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")));
}


还尝试了这个

如何在React应用程序中转换数据以显示该数据?

1 个答案:

答案 0 :(得分:0)

我知道这是一个古老的问题,但是有人可以发现它有用。

尝试将图像转换为类似base64的字符串

objImg.img = new Buffer.from(bitMap).toString("base64")

然后从请求中获取图像时,将状态设置为

setPreviewImg("data:image/png;base64," + result.img)