当前位置:   article > 正文

Python利用qrcode生成二维码并解析结果_qrcode解析二维码

qrcode解析二维码

使用到的库

1、qrcode

介绍:qrcode模块是Github上的一个开源项目,提供了生成二维码的接口。qrcode模块默认使用PIL库用于生成图像。
安装:

pip install qrcode
  • 1

使用到的函数:qrcode.QRCode(),该函数用于生成二维码,传入的参数为生成二维码的内容以及样式控制

2、pyzbar

介绍:pyzbar是python的一个第三方库,其作用包括条形码生成和扫描器。
安装:

pip install pyzbar
  • 1

使用到的函数:pyzbar.decode(),该函数用于解析二维码存储的信息

3、PIL

介绍:PIL,全称Python Image Library,主要作用是图像处理,可用于图片剪切、粘贴、缩放、镜像、水印、颜色块、滤镜、图像格式转换、色场空间转换、验证码、旋转图像、图像增强、直方图处理、插值和滤波等功能
安装:

pip install Pillow
  • 1

代码

# -*- coding:utf-8 -*-
import os
import qrcode
from PIL import Image
from pyzbar import pyzbar

def make_qr_code_with_icon(content, icon_path, save_path=None):
    if not os.path.exists(icon_path):
        raise FileExistsError(icon_path)

    # First, generate an usual QR Code image
    qr_code_maker = qrcode.QRCode(version=5,
                                  error_correction=qrcode.constants.ERROR_CORRECT_H,
                                  box_size=8,
                                  border=4,
                                  )
    qr_code_maker.add_data(data=content)
    qr_code_maker.make(fit=True)
    qr_code_img = qr_code_maker.make_image(
        fill_color="black", back_color="white").convert('RGBA')

    # Second, load icon image and resize it
    icon_img = Image.open(icon_path)
    code_width, code_height = qr_code_img.size
    icon_img = icon_img.resize(
        (code_width // 4, code_height // 4), Image.ANTIALIAS)

    # Last, add the icon to original QR Code
    qr_code_img.paste(icon_img, (code_width * 3 // 8, code_width * 3 // 8))

    if save_path:
        qr_code_img.save(save_path)  # 保存二维码图片
        qr_code_img.show()  # 显示二维码图片
    else:
        print("保存错误!")


def decode_qr_code(code_img_path):
    if not os.path.exists(code_img_path):
        raise FileExistsError(code_img_path)
    # Here, set only recognize QR Code and ignore other type of code
    return pyzbar.decode(Image.open(code_img_path), symbols=[pyzbar.ZBarSymbol.QRCODE])

if __name__ == "__main__":
    print("1、请输入编码信息(可以为文字、链接、图片地址):")
    code_Data = input('>>:').strip()
    print("正在编码:")
    # ==生成带中心图片的二维码
    make_qr_code_with_icon(code_Data, "QRcodeCenter.jpg", "qrcode.png")  # 内容,center图片,生成二维码图片
    print("图片已保存,名称为:qrcode.png")
    results = decode_qr_code("qrcode.png")
    print("2、正在解码:")
    if len(results):
        print("解码结果是:")
        res = results[0].data.decode("utf-8")
        print(res)
        with open(r"./info.txt", "a+", encoding='utf-8')as f:
            f.seek(0)
            f.truncate()
            f.write(res)
    else:
        print("无法识别.")

  • 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
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/649339
推荐阅读
相关标签
  

闽ICP备14008679号