首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >难以将图像转换为Base64

难以将图像转换为Base64
EN

Stack Overflow用户
提问于 2018-05-23 10:37:35
回答 1查看 631关注 0票数 0

在将图像转换为base64字符串时,我面临一个非常令人困惑的问题。

下面是我的示例代码:

代码语言:javascript
复制
app.get('/image', (req, res) => {
  ServerAPI.queryViewImage(options).then(image => {
    res.render('image', { image: Buffer.from(image, 'binary').toString('base64') });
  });
});

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

代码语言:javascript
复制
 { image: Buffer.from(image, 'binary').toString('base64') }

实际上,我用邮递员测试了我的API,并正确地显示了图像。然后,我使用在线转换器将图像转换为base64,并将代码包含在我的html / img中。

然后,我比较了base64代码由Node.js和来自同一个API调用的联机转换器生成的代码--很明显,它们之间存在差异。截图如下:

Node.js对base64的响应与图像对base64响应的差异

我错过了什么?为什么Node.js没有正确地转换我的图像响应?

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

代码语言:javascript
复制
//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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-23 12:04:20

我找到了解决办法。希望将来有人会用这个。

因此,请求-承诺库有一些默认编码。要删除它,我将“编码”属性添加到options对象中,并将其设置为null。如下所示

代码语言:javascript
复制
    const options = {
        method: 'GET',
        url: `${url('sites')}/${siteId}/views/${viewId}/image`,
        headers: {
            'X-Tableau-Auth': token
        },
        encoding: null
    };
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50486210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档