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安全错误
数据库的锁怎样保障安全
辽源软件开发系统品牌
校园网络安全监控措施
当前的软件开发模式有
数据库系统设计图片
数据库输出前十条
全文数据库的名字解释
第三方服务器价格
本地数据库名
2021服务器市场半年总结
服务器sct配置
职业学院软件开发课程
服务器主机电池没电
服务器硬盘访问数据
b s架构服务器
数据库安装和设置
数据库宜宾考哪些
安徽供应商外贸软件开发
表格内容存储数据库jsp
一个软件开发的过程
云服务器上配置php
浙江企业软件开发商家
手游租个服务器多少钱
银行软件开发人员外包公司吗
网络安全教育调查问卷
网络安全手抄报模板通用
超市数据库设计实例
弘觅上海网络技术有限公司
软件开发语言入门教程
怎样分离导出别人的数据库
中兴软件开发需要学什么