python生成二维码nodejs生成二维码以及添加logo

python生成二维码,nodejs生成二维码,几行代码就可以实现

两种方式可以实现

python的第三方模块qrcode和MyQR的都可以快速的生成二维码,生成的二维码扫码之后可以是url链接也可以是图片或者文本。

安装方式

"""python
pip install qrcode
pip install MyQR
"""

MyQR生成二维码

from MyQR import myqr

# 图片二维码
myqr.run(
    words='http://www.baidu.com',
    picture='1.jpg',
    colorized=True  # 显示彩色图片
)

生成二维码:
在这里插入图片描述

from MyQR import myqr
#  动图二维码
myqr.run(
    words='http://www.baidu.com',
    picture='timg1.gif',
    colorized=True  # 显示彩色图片
)

生成二维码:
在这里插入图片描述

qrcode生成二维码

import qrcode
img = qrcode.make('https://www.baidu.com')
with open('test.png', 'wb') as f:
    img.save(f)

生成二维码:
在这里插入图片描述

qrcode生成带logo的二维码

import os
import qrcode
from PIL import Image


def make_qrcode(data, save_path='./qrcode.png', border=5, image_size=(300, 300), icon_path='', factor=3.5):
    # 生成二维码主体
    qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H, border=border)
    qr.add_data(data)  # 向二维码写入数据
    qr.make()
    qrcode_image = qr.make_image().resize(image_size, Image.ANTIALIAS).convert('RGBA')

    if icon_path:  # 在二维码中间贴上图标
        icon_size = int(image_size[0] / factor), int(image_size[1] / factor)
        icon = Image.open(icon_path).resize(icon_size, Image.ANTIALIAS).convert('RGBA')
        icon_margin = int((image_size[0] - icon_size[0]) / 2), int((image_size[1] - icon_size[1]) / 2)
        mask = Image.new('RGBA', icon_size, color='white')
        qrcode_image.paste(mask, icon_margin, mask)
        qrcode_image.paste(icon, icon_margin, icon)

    # 保存二维码为文件
    if not os.path.isdir(os.path.dirname(save_path)):
        os.makedirs(os.path.dirname(save_path))
    qrcode_image.save(save_path)


if __name__ == '__main__':
    url = 'https://www.baidu.com'
    make_qrcode(data=url, save_path='./xxxxxx.png', icon_path='logo.jpg')

生成二维码:
在这里插入图片描述

import qrcode
from PIL import Image
import matplotlib.pyplot as plt


def getQRcode(data, file_name):
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=5,
        border=4,
    )
    # 添加数据
    qr.add_data(data)
    # 填充数据
    qr.make(fit=True)
    # 生成图片
    img = qr.make_image(fill_color="green", back_color="white")

    # 添加logo,打开logo照片
    icon = Image.open("1.jpg")
    # 获取图片的宽高
    img_w, img_h = img.size
    # 参数设置logo的大小
    factor = 6
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    icon_w, icon_h = icon.size
    if icon_w > size_w:
        icon_w = size_w
    if icon_h > size_h:
        icon_h = size_h
    # 重新设置logo的尺寸
    icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
    # 得到画图的x,y坐标,居中显示
    w = int((img_w - icon_w) / 2)
    h = int((img_h - icon_h) / 2)
    # 黏贴logo照
    img.paste(icon, (w, h), mask=None)
    # 终端显示图片
    plt.imshow(img)
    plt.show()
    # 保存img
    img.save(file_name)
    return img


if __name__ == '__main__':
    getQRcode("秋风清,秋月明,落叶聚还散,寒鸦栖复惊。相亲相见知何日,此时此夜难为情;入我相思门,知我相思苦,长相思兮长相忆,短相思兮无穷极,早知如此绊人心,何如当初莫相识.", 'my.png')

生成二维码:
在这里插入图片描述

nodejs生成二维码

var qr = require('qr-image');  //需要下载生成二维码依赖
var fs = require('fs'); //文件操作依赖

var code = qr.image("https://www.baidu.com", { type: 'png', size: 20 });
console.log(code);
var pic = code.pipe(fs.createWriteStream('baidu.png'));
pic.on('error', function (err) {
    console.log(err);
});
pic.on('finish', function () {
    console.log('二维码生成完毕');
});

在这里插入图片描述

以上就是平时常用的简单制作二维码的方法,希望对大家的学习有所帮助!

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页