千家信息网

Node.js在图片模板上怎么生成二维码图片并附带底部文字说明

发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,今天小编给大家分享一下Node.js在图片模板上怎么生成二维码图片并附带底部文字说明的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完
千家信息网最后更新 2024年10月01日Node.js在图片模板上怎么生成二维码图片并附带底部文字说明

今天小编给大家分享一下Node.js在图片模板上怎么生成二维码图片并附带底部文字说明的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

在Node.js中,我们可以通过qr-image包直接在后台生成二维码图片,使用方法很简单:

var qr = require('qr-image');exports.createQRImage = function(res, str){  var img = qr.image(str); // 将生成二维码图片  res.writeHead(200, {'Content-Type': 'image/png'});  img.pipe(res);};

但是如果我们希望生成的不仅仅是二维码,而是在一张给定的背景图上生成二维码,并在底部配上相应的文字说明,那么就需要借助于其它一些包来实现。

  • images包是Node.js上一个轻量级的跨平台图像处理库,可以用来进行图片的编辑和绘制。

  • svg2png用来将生成的svg转换成png图片。

  • text-to-svg用来将给定的文字转换成对应的svg。

下面是对应的实现代码:

exports.genQrImage = function (text, url) {  const tts = textToSVG.loadSync(path.join(__dirname, '../../msyh.ttf'));  const tSvg = tts.getSVG(text, {    x: 0,    y: 0,    fontSize: 20,    anchor: 'top'  });  const margin = 35; // 二维码的左右边距  const top = 90; // 二维码距顶部的距离  var sourceImage = images(path.join(__dirname, '../../source.png'));  var w = sourceImage.width(); // 模板图片的宽度  return svg2png(tSvg)    .then((rst) => {      var textImage = images(rst);      var qrImage = images(qr.imageSync(url, {type: 'png'})).size(w - margin * 2); // 二维码的尺寸为:模板图片的宽度减去左右边距      return sourceImage        .draw(qrImage, margin, top) // 二维码的位置:x=左边距,y=top        .draw(textImage, (w - textImage.width()) / 2, top + qrImage.height() + 10) // 底部文字,x为居中显示,y=top+二维码的高度+10        .encode('png', {quality: 90});    })    .catch(e => console.error(e));};

函数genQrImage接收两个参数,text是显示在二维码底部的文字,url是要生成的二维码地址。其中的source.png是给定的背景图片,msyh.ttf是微软雅黑的字体文件。

基本思路就是通过images库加载一张预先指定的背景图片,然后通过计算出的起始点坐标在背景图上画出二维码图片和文字。最后通过encode方法将画好的图片输出到buffer中,当然也可以通过save方法保存到服务器上。具体使用方法可以查看github上的文档。

myShareQrImage: function* (next) {  var _text = "联系人:xxx   手机号:13200000000";  var _url = "http://www.cnblogs.com/jaxu";  var _buffer = yield BizUtils.genQrImage(_text, _url);  this.res.setHeader('Content-type', 'image/png');  this.body = _buffer;  yield next;}

最终生成的效果:

以上就是"Node.js在图片模板上怎么生成二维码图片并附带底部文字说明"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

图片 二维 二维码 生成 文字 底部 模板 方法 知识 篇文章 背景 使用方法 内容 可以通过 宽度 就是 背景图片 不同 很大 不仅仅 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 查询数据库所有表及解释 数据库恢复技术的方法 大疆飞行安全数据库删除 护苗网络安全课昆山 信阳矿用录音服务器报价 停车场管理系统服务器要求 服务器有几种类型怎么区分分别 公安部关于网络安全保卫工作会议 文件连接服务器时出现问题 数据库的建设需要光模块吗 写存储过程的数据库开发 学计算机专业软件开发 忻州市网络安全宣传 软件开发项目简介怎么写 网络技术工作者考试 上海群海网络技术有限公司官网 如何备份数据库文件 裕华掌动计算机软件开发工作室 业务访问和数据库隔离 软件开发如何更好的熟悉业务 高清电视解码服务器4路价格 网络安全宣传作品征集评选 电子发票显示服务器异常 服务器响应异常500 键值数据库以内存处理为主 pubg一直处于服务器状态 怎么把文件存到db2数据库 wlan添加新网络安全类型 山西太原恒速网络技术有限公司 网络安全工程师入门应该看什么书
0