gpt4 book ai didi

javascript - 将图像转换为 Base64 困难

转载 作者:行者123 更新时间:2023-12-03 01:49:16 26 4
gpt4 key购买 nike

在 Node.js 中将图像转换为 Base64 字符串时,我遇到了一个非常令人困惑的问题

这是我的示例代码:

app.get('/image', (req, res) => {
ServerAPI.queryViewImage(options).then(image => {
res.render('image', { image: Buffer.from(image, 'binary').toString('base64') });
});
});

所以基本上,最重要的是这个 block ,我在其中将图像响应转换为 base64 字符串:

 { image: Buffer.from(image, 'binary').toString('base64') }

实际上,我用 Postman 测试了我的 API,图像显示正确。然后,我使用在线转换器将图像转换为 Base64,并将代码包含在我的 html/img src 中,这有效。

然后我比较了 Node.js 和在线转换器通过相同 API 调用生成的 Base64 代码 - 显然,存在差异。截图如下:

differences between Node.js response to base64 and image to base64

我缺少什么?为什么 Node.js 没有正确转换我的图像响应?

//编辑:包括queryViewImage函数的代码。

//basically, this function connects to server and returns image response as promise. rp() is from request-promise library
const queryViewImage = (token, siteId, viewId) => {
const options = {
method: 'GET',
url: `${url('sites')}/${siteId}/views/${viewId}/image`,
headers: {
'X-Tableau-Auth': token
}
};

return rp(options)
.then((response) => response)
.catch((err) => err);
}

最佳答案

我找到了解决方案。希望将来有人会使用它。

因此,请求 promise 库有一些默认编码。为了删除它,我向选项对象添加了“encoding”属性并将其设置为 null。如下所示

    const options = {
method: 'GET',
url: `${url('sites')}/${siteId}/views/${viewId}/image`,
headers: {
'X-Tableau-Auth': token
},
encoding: null
};

关于javascript - 将图像转换为 Base64 困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50486210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com