当前位置: 首页 > 工具软件 > python-qrcode > 使用案例 >

python----生成二维码

徐博雅
2023-12-01


使用python生成二维码,手机扫描二维码访问指定网页地址。

qrcode库

qrcode地址

  1. 安装
python -m pip install qrcode
  1. 生成一个简单二维码,扫码跳转到我的博客
import qrcode
url = "https://blog.csdn.net/weixin_45228198?type=blog"

# qrcode.image.pil.PilImage 与 PIL.Image.Image不同
my_code = qrcode.make(data=url)
my_code.show()

# 保存到文件中
my_code.save("mycode.jpg", format='jpeg')

# 保存到io对象中, 字节流对象
byte_io = BytesIO()
my_code.save(byte_io, format='png')

# 获取其 内部数据
img = my_code.get_image()
import numpy as  np
data = np.array(img.getdata()).reshape(img.height, img.width)
  1. 生成一个带颜色的二维码
import qrcode
from io import BytesIO
from qrcode import constants

url = "https://blog.csdn.net/weixin_45228198?type=blog"

# 生成一个二维码, PIL Image 对象
qr_code = qrcode.QRCode(
    version=10,  # 二维码中小格子的大小,值越大,格子越小
    error_correction=constants.ERROR_CORRECT_H, # 容错率
    box_size=100,  每一个小格子的大小
    border=7  # 二维码距离边框的距离
)  

# 传入地址或者文字内容
qr_code.add_data(data=url)

qr_code.make(fit=True)
img = qr_code.make_image(fill_color='pink', back_color='white')
img.show()

# 保存到文件中
img.save("mycode.jpg", format='jpeg')

# 保存到io对象中, 字节流对象
byte_io = BytesIO()
img.save(byte_io, format='png')

#
HttpResponse(byte_io.getvalue(), content_type="image/png")

MyQR库

pypi下载离线文件,离线安装

  1. 生成彩色的二维码
from MyQR import myqr

myqr.run(
    words="https://www.baidu.com", # 地址
    version=1,  # 小格子的大小
    level='H', # 容错率
    picture='dog.jpg', # 背景图片 .jpg/.png/.gif
    colorized=True,  # 彩色
    contrast=1.0, # 对比度 浮点数
    brightness=1.2, # 亮度  浮点数
    save_name='laufing.png',  # 文件中或者BytesIO对象中  动画则.gif
    save_dir="./")

  1. 生成动态二维码
from MyQR import myqr

myqr.run(
    words="https://www.baidu.com", # 地址
    version=1,  # 小格子的大小
    level='H', # 容错率
    picture='cc.gif', # 背景图片 .gif
    colorized=True,  # 彩色
    contrast=1.0, # 对比度 浮点数
    brightness=1.2, # 亮度  浮点数
    save_name='laufing.gif',  # 文件中或者BytesIO对象中  动画则.gif
    save_dir="./")

解析二维码

使用 zxing模块

# 安装 
python -m pip install zxing

import zxing
reader = zxing.BarCodeReader()
barcode = reader.decode('laufing.gif') # 解码二维码图片

# 获取内容
barcode.parsed
 类似资料: