Javascript 将JSON转换为IMG类型

Javascript 将JSON转换为IMG类型,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,是否可以将JSON obj转换为img,如gif或png?基本上,我想截图返回的JSON并转换成gif或png类型 我尝试将JSON转换为base64,但图像没有呈现。base64返回正确,但未显示 index.html <script type="text/javascript"> const btn1 = document.getElementById('pressme'); btn1.addEventListener('click',

是否可以将JSON obj转换为img,如gif或png?基本上,我想截图返回的JSON并转换成gif或png类型

我尝试将JSON转换为base64,但图像没有呈现。base64返回正确,但未显示

index.html

    <script type="text/javascript">
    const btn1 = document.getElementById('pressme');
    btn1.addEventListener('click', getData);
    function getData(e) {
        var id = document.getElementById("userid").value;
        $.ajax({
            url: `/${id}`,
            method: 'GET',
            success: function (data) {
                console.log("data", data);
                $("#userid").attr("src", `data:image/png;base64, ${data}`);
            },
            error: function (err) {
                console.log('Failed');
            }
        })
    }
</script>

<div id="main"><img id="id" src="" /></div>
})

我使用了这种方法:
var-imgElem=document.getElementById('img');
$('#urlText').keyup(函数(){
$('img').attr('src',$('urlText').val();
});
$('#sendData')。单击(函数(){
var imgData=JSON.stringify(getBase64Image(imgElem));
$.ajax({
网址:'http://url.com/rest/api',
数据类型:“json”,
资料来源:imgData,
键入:“POST”,
成功:功能(数据){
控制台日志(数据);
}
});
});
函数getBase64Image(imgElem){
//imgElem必须在同一台服务器上,否则将抛出跨源错误“SECURITY\u ERR:DOM Exception 18”
var canvas=document.createElement(“canvas”);
canvas.width=imgElem.clientWidth;
canvas.height=imgElem.clientHeight;
var ctx=canvas.getContext(“2d”);
ctx.drawImage(imgElem,0,0);
var dataURL=canvas.toDataURL(“image/png”);
返回dataURL.replace(/^data:image\/(png | jpg);base64,/,“”);

}
如果没有示例数据,很难判断,但看起来您正在字符串化json,然后从中创建缓冲区。为什么不从解析的json结果创建一个缓冲区呢?e、 例如,
让objJsonB64=Buffer.from(apiressejson.results[0]).toString(“base64”)您正在尝试生成包含人类可读的JSON文本字符的图像?或您当前所做的就是将base64文本放在那里,并声称它是PNG(不是)。您可以将其写入
并使用
canvas.toDataURL()
将其转换为图像!!!!这个答案对我帮助很大。。。
app.get('/:id', async (req, res) => {
try {
    const { id } = req.params
    const apiResponse = await fetch(
        'https://dummydata.com/' + id
    )
    const apiResponseJson = await apiResponse.json()

    let objJsonStr = JSON.stringify(apiResponseJson.results[0]);
    let objJsonB64 = Buffer.from(objJsonStr).toString("base64");

    res.send(objJsonB64)

} catch (err) {
    console.log(err)
    res.status(500).send('Something went wrong')
}