网页模板网站

网页模板网站:Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解

Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解  更新2019年08月07日   作者:Jaxu   这篇文章主要介绍了Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
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 手机号:";
 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获得输出的三种方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

这篇文章主要介绍了Nodejs初级阶段之express的相关资料,需要的朋友可以参考下

这篇文章主要介绍了详解NodeJS Https HSM双向认证实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据,这篇文章主要介绍了puppeteer实现截图的示例代码,感兴趣的可以了解一下

这篇文章主要介绍了node.js ws模块搭建websocket服务端的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始。这篇文章主要给大家介绍了如何快速搭建Node.Js服务器的方法教程,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友下面来一起看看吧。

这篇文章主要介绍了我个人使用的一些Node.js开发工具、开发包、框架等总结,需要的朋友可以参考下

这篇文章主要介绍了Node.js web 应用如何封装到Docker容器中,帮助大家更好的学习node.js和使用docker容器,感兴趣的朋友可以了解下

这里只是熟悉nodejs中的http模块的API,一般在开发过程中使用的是第三方的框架,比如说Express。其中封装了更为简单的构建http服务器的API。

这篇文章主要介绍了简单了解小程序+node梳理登陆流程,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://yyxcxzmzw.cn/jingyan/2839.html