NodeJS将图像流转换为base64会产生无效数据
NodeJS converting image stream to base64 gives invalid data
我试图生成QR码,然后将其作为base64编码的数据URL返回。我知道有一个模块(https://github.com/cmanzana/qrcode-npm),它应该能够直接做到这一点,但我有麻烦安装画布模块依赖。我仍然在这方面工作,但现在,我尝试的解决方法是用备用模块生成图像流,然后将其转换为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编码之前和之后连接块通常不会产生相同的结果。看一下这个例子:
btoa("12" + "34") -> "MTIzNA=="
btoa("12") + btoa("34") -> "MTI=MzQ="
相关文章:
- Laravel数据表无效的JSON响应
- angular payments返回带有测试数据的无效卡
- TypeError: 使用 Jquery JSON 获取数据时无效的 'in' 操作数 obj
- Img源设置为数据无效
- 如果ng-if的计算结果为false,AngularJS会使我的模型数据无效
- 数据表1.8.0添加服务器参数无效
- Javascript日期允许使用无效数据(例如2月30日)
- 无效的“in”操作数 obj JQUERY - 尝试从 JSON 获取数据时出现类型错误
- JSON 数据的分配无效
- PHP 和 RegEx:在 XML 标记之间获取原始数据,即使整个 XML 似乎无效
- 将包含内容和元数据的文件上传到谷歌文档会返回400无效/错误请求
- XMLHttpRequest multipart/form数据:multipart中的边界无效
- Gulp调试-管道到进程.stdout给出TypeError('无效数据')
- 错误'无效数据'同时使用node-v0.10.4作为websocket代理
- Highcharts如果标题包含数字,则显示无效数据
- NodeJS将图像流转换为base64会产生无效数据
- ASP.Net MVC Razor引擎:让javascript函数知道用户是否输入了无效数据
- 对于用户提交的无效数据,适当的HTTP响应是什么?
- Rails:在无效数据上填写表单
- 将php echo设置为javascript变量无效数据