头闻号

上海畅胜化工有限公司

钛白粉|硫酸钡|碳酸钙|羧酸|高岭土|石油蜡

首页 > 新闻中心 > 科技常识:nodejs实现二维码生成及图片合成
科技常识:nodejs实现二维码生成及图片合成
发布时间:2023-02-01 10:34:37        浏览次数:1        返回列表

今天小编跟大家讲解下有关nodejs实现二维码生成及图片合成 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关nodejs实现二维码生成及图片合成 的相关资料,希望小伙伴们看了有所帮助。

前端需要做分享功能。生成二维码后 在指定的图片上添加二维码和邀请码生成新的图片。

1.使用 qr-code生成二维码

async createQr(url, name) { let qr_png = qr.image(url, { type: ‘png‘, size: 8, margin: 2 }); let imgName = `${this.app.config.share_path}/${name}.png`; let qr_pipe = qr_png.pipe(fs.createWriteStream(imgName)); return await new Promise((resolve, reject) => { qr_pipe.on(‘error‘, function(err) { console.log(err); resolve(null); }); qr_pipe.on(‘finish‘, function() { resolve(imgName.substring(3, imgName.length)); }); }).then(data => data);}

2.使用text-to-svg 生成邀请码图片,字符转图片

const textToSVG = TextToSVG.loadSync(); const svg = textToSVG.getSVG(id + ‘‘, { x: 0, y: 0, width: 80, height: 32, fontSize: 22, anchor: ‘left top‘, attributes: { fill: ‘white‘, // 字体颜色 stroke: ‘black‘, },});

3.使用gm工具合成图片

svg2png(svg).then(d => { console.log(‘@@@@@@@@‘); const n = `${this.app.config.share_path}/${name}_number.png`; fs.writeFile(`${n}`, d, err => { gm().in(‘-page‘, ‘0,0‘)// -page是设置图片位置,所有的图片以左上为原点,向右、向下为正 .in(sourceImg)// 底图,到这里第一张图就设置完了,要先设置参数,再设置图片 .in(‘-resize‘, ‘250x250‘)// 设置微信二维码图片的大小(等比缩放) .in(‘-page‘, ‘+110+210‘)// 设置微信二维码图片的位置 .in(waterImg)// 二维码图 .in(‘-page‘, ‘+210+532‘)// logo图位置 .in(n)// logo图 .mosaic()// 图片合成 .write(lastput, function(err) { // 图片写入 if (err) { console.log(err); reject(new Error(‘error!!!!!!!!!!!!!!!!‘)); } else { console.log(‘ok‘); resolve(lastput.substring(3, lastput.length)); } }); });});

来源:爱蒂网