gpt4 book ai didi

javascript - NodeJS 将图像流转换为 base64 给出无效数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:21 28 4
gpt4 key购买 nike

我正在尝试生成 QR 码,然后将其作为 Base64 编码的数据 URL 返回。我知道有一个模块( https://github.com/cmanzana/qrcode-npm )应该能够直接执行此操作,但我在安装 Canvas 模块依赖项时遇到问题。我仍在这方面努力,但目前,我尝试的解决方法是使用备用模块生成图像流,然后将其转换为 Base64。这是我到目前为止所拥有的:

var qrBase64 = '';
var qrImg = qr.image(qrText, { type: 'png', ec_level: 'L' });

qrImg.on('readable', function () {
qrBase64 += qrImg.read().toString('base64');
});

qrImg.on('end', function () {
qrBase64 = "data:image/png;base64," + qrBase64;
return res.json({
success: true,
qrBase64: qrBase64
});
});

它似乎有效,因为它给了我一个类似于 Base64 编码字符串的字符串。但是,如果我尝试在浏览器中查看它,则会收到无效 URL 错误。如果我将 qrImg 通过管道传输到文件,然后使用在线工具将其转换为 Base64,则结果(在浏览器中有效且有效)与我的 Node 结果不匹配。

最佳答案

您需要一次对所有图像数据进行 Base64 编码。在 Base64 编码之前和之后连接 block 通常不会产生相同的结果。看一下这个例子:

btoa("12" + "34")         -> "MTIzNA=="

btoa("12") + btoa("34") -> "MTI=MzQ="

关于javascript - NodeJS 将图像流转换为 base64 给出无效数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24700072/

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