如何使用angular 5保存生成的二维码图像
如何使用angular 5保存生成的二维码图像,angular,typescript,qr-code,Angular,Typescript,Qr Code,看起来angular2 qrcode有一个“canvas”参数,使其绘制到画布 如果你能做到这一点,那么你应该能够使用上介绍的技术从画布上获取图像。但是我已经找到了问题的解决方案。我尝试了不同的方法。它们似乎都不起作用。我将在下面列出步骤 let dataurl = document.getElementById("canvas").innerHTML; // data get from html as base 64 image let myRegexp = /(?:^|\s)src=(.
看起来angular2 qrcode有一个“canvas”参数,使其绘制到画布
如果你能做到这一点,那么你应该能够使用上介绍的技术从画布上获取图像。但是我已经找到了问题的解决方案。我尝试了不同的方法。它们似乎都不起作用。我将在下面列出步骤
let dataurl = document.getElementById("canvas").innerHTML;
// data get from html as base 64 image
let myRegexp = /(?:^|\s)src=(.*?)(?:\s|$)/g;
let match = myRegexp.exec(dataurl);
let match1 = match[1].replace('">', '');
let ImageURL = match1;
let block = ImageURL.split(";");
let contentType = block[0].split(":")[1];
let realData = block[1].split(",")[1];
let **file** = this.**dataURLtoFile**(ImageURL, 'testFile.png');
要将BASE64转换为多部分图像文件,我遵循以下几行。我设置的图像名称testfile.png
dataURLtoFile(dataurl, filename) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
}
最后,我将文件发送到formdata Format到RESTAPI
Formdata.append("imagefile",file);
您正在使用哪个二维码生成器?我也尝试过上面的链接,但是下载对我来说不起作用。我添加了下载我正在使用npm i angular2 qrcode(我遵循了这个链接),你能给我其他的解决方案吗。?