Python——生成二维码

1 使用 MyQR 生成二维码

先安装 myqr,使用 cmd 命令:
pip install myqr
如果安装失败,可以尝试使用管理员身份启动 cmd,再次安装试试
python 代码为:

from MyQR import myqr;
myqr.run(words="https://www.baidu.com", picture="test.png", colorized=True, save_name="my.png");

words str 为扫描后跳转的链接,也可以为要显示的字符串
picture 为二维码上的图片,可以自定义自己的图片
colorized 为 True 时,可以显示为彩色图片
save_name 为生成的二维码图片名,默认文件名是"qrcode.png"
当 picture 为 gif 格式时,设置 save_name 也同样为 gif,此时二维码为动态二维码
其他参数:
save_dir 存储位置 str,默认存储位置是当前目录
version 边长 int,控制边长,范围是1到40,数字越大边长越大,默认边长是取决于你输入的信息的长度和使用的纠错等级
level 纠错等级 str,控制纠错水平,范围是L、M、Q、H,从左到右依次升高,默认纠错等级为’H’
contrast 对比度 float,调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
brightness 亮度 float,调节图片的亮度,其余用法和取值与 contrast 相同
在这里插入图片描述

2 使用 qrcode 生成二维码

下载 qrcode 包和依赖的 Image 包:

pip install qrcode
pip install Image

在这里插入图片描述
python 代码:

# 用 qrcode 生成二维码
## 例子1,简单生成二维码
import qrcode
img = qrcode.make('https://www.baidu.com')
with open('test.png', 'wb') as f:
img.save(f)


## 例子2 一般步骤生成默认二维码
import qrcode

data = 'http://www.baidu.com/'
img_file = 'dir/test.png'

 # 实例化QRCode生成qr对象
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4
 )
 # 传入数据
 qr.add_data(data)

 qr.make(fit=True)

 # 生成二维码
 img = qr.make_image()

 # 保存二维码
 img.save(img_file)
 # 展示二维码
 img.show()

## 例子3, 添加自定义图片和内容
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照片,该图片为要放在二维码中显示的自定义图片,dir 为图片目录
    icon = Image.open("dir/timg[1].png")
    # 获取图片的宽高
    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

# “你好”为自定义内容, 生成二维码为 my.png
if __name__ == '__main__':
    getQRcode("你好", 'my.png')

使用 qrcode 生成二维码的一般步骤为:
创建QRCode对象
add_data()添加数据
make_image()创建二维码(返回im类型的图片对象)
自动打开图片,im.show()

发布了7 篇原创文章 · 获赞 7 · 访问量 3785

猜你喜欢

转载自blog.csdn.net/fengyang182/article/details/104213984