Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用angular 5保存生成的二维码图像_Angular_Typescript_Qr Code - Fatal编程技术网

如何使用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(我遵循了这个链接),你能给我其他的解决方案吗。?