2022年 11月 5日

Python生成二维码的操作方法

使用的是qrcode库,在使用之前需要安装此库

pip install qrcode
  • 1

网址

#python生成二维码
import qrcode
img=qrcode.make("http://baidu.com")
img.save("二维码.jpg")
  • 1
  • 2
  • 3
  • 4

文字

import qrcode 
jpg=qrcode.make("这只是一段文字")
jpg.save("文字.jpg")
  • 1
  • 2
  • 3

设置颜色

import qrcode
"""
version :QR code 的版次,可以设置 1 ~ 40 的版次。
error_correction :容错率,可选 7%、15%、25%、30%,参数如下 :
qrcode.constants.ERROR_CORRECT_L :7%
qrcode.constants.ERROR_CORRECT_M :15%(预设)
qrcode.constants.ERROR_CORRECT_Q :25%
qrcode.constants.ERROR_CORRECT_H :30%
box_size :每个模块的像素个数。
border :边框区的厚度,预设是 4。
image_factory :图片格式,默认是 PIL。
mask_pattern :mask_pattern 参数是 0 ~ 7,如果省略会自行使用最适当的方法。
"""
qr = qrcode.QRCode(version=1,
                   error_correction=qrcode.constants.ERROR_CORRECT_M,
                   box_size=10,
                   border=4)
qr.add_data("测试文字")
#设置二维码颜色为蓝色,背景色为黄色
img=qr.make_image(fill_color='blue',back_color="yellow")
img.save("二维码.jpg")
img.show()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
实现效果如下:

在这里插入图片描述

在二维码上添加一张图片

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("django.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("http://baidu.com", 'my.png')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
实现效果

在这里插入图片描述

使用MyQR库生成动态二维码

## 安装
pip install myqr
  • 1
  • 2
#使用MyQR库生成动态二维码
from MyQR import myqr
#bg.gif为动态图
myqr.run(words='http://www.baidu.com',
         picture='bg.gif',
         save_name='qr1.gif',
         colorized=True)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
实现效果

在这里插入图片描述