微信开发,获取带参数的二维码,这个在微信的文档中我们可以轻松实现。
现在的需求是给二维码加上logo,再把这个加了logo的二维码放到一张大图中,三张国片合成一张图片。
1、gm库
在node服务器中添加gm库
2、安装 GraphicsMagick或者ImageMagick
第一步中装的gm库中所使用的方法是依赖这两个软件的,因为本质上是gm通过执行这两个软件的相关命令来对图片进行操作。
这里要注意一下,在准备就绪测试的时候,可能会报错找不到命令,这时候检查两个问题:
1、是否设置了环境变量(亲测GraphicsMagick安装的时候会询问是否设置为环境变量);
2、是否重启了计算机,上一步在GraphicsMagick安装的过程中自动设置了环境变量,但是在我调用的时候却没有起作用,所以重启了一下,再测试就OK了。
3、代码调用
var gm = require('gm')
gm().in('-page', '+0+0')//-page是设置图片位置,所有的图片以左上为原点,向右、向下为正
.in('Images/bg.png')//底图,到这里第一张图就设置完了,要先设置参数,再设置图片
.in('-resize', '200x200')//设置微信二维码图片的大小(等比缩放)
.in('-page', '+100+100')//设置微信二维码图片的位置
.in('Images/qrcode.png')//二维码图
.in('-page', '+75+75')//logo图位置
.in('Images/logo.png')//logo图
.mosaic()//图片合成
.write('Images/final.png', function (err) {//图片写入
if (!!err) {
console.log(err);
} else {
console.log('ok');
}});
图片必须是本地图片,如果是网络图片,可以先下载到本地,如何下载到本地,点击查看
这个方法可以合成多张图片,只要向下加参数就可以了。
以上只是图片的合成方法,gm还有很多其他的方法,图像拼接,裁剪等,这里不多说,看文档根据需求调用。
附gm参考资料
GitHub gm 简单易懂易使用
npm gm 简单易懂易使用
官方