node服务器如何生成有logo和背景的带参数二维码

微信开发,获取带参数的二维码,这个在微信的文档中我们可以轻松实现。
现在的需求是给二维码加上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 简单易懂易使用
官方

如果有什么疑问或者想法,欢迎留言,靴靴!

你可能感兴趣的:(JavaScripts,nodejs)