python通过qrcode库生成二维码,轻松实现二维码应用

二维码

随着智能设备的普及,二维码已经非常常见了,甚至天天都要用。例如,出门买东西的时候,需要“扫码付款”。进入某些场所的时候,需要“扫场所码”。买了一瓶饮料,上面的抽奖活动也不再是谢谢惠顾和再来一瓶,而是不知什么时候开始,变成了“扫码抽奖”。而看完了一篇文章,下面可能也有“扫描二维码联系作者”。

虽然二维码天天用,但是很多人其实不了解二维码究竟是什么,为什么可以扫码。其实,二维码由黑白色的方形模块组成,存储了一些信息。通过扫描设备,可以解读其中的信息。

二维码可以存储数字,文本等信息,其容量是有限的,最多可以存储几千个字符。例如,“Hello World“,就可以被写为一个二维码。至于扫码付款,通常是一个url地址(或者特定的app应用定义的信息),当你扫描这个地址的时候,就可以打开应用,或者实现转账。

二维码有众多优点,包括生成简单,扫描容易,可以嵌入图片标志进行宣传等。因此,文本就介绍一下,怎么使用python生成以及读取二维码。

生成二维码

安装qrcode

使用pip安装qrcode库:pip install "qrcode[pil]"

使用qr命令生成二维码

当安装完成qrcode库,会得到一个qr命令,直接使用该命令可以快速生成二维码。

qr "hello world" > hello_world.png

此时,就可以看到一个二维码图片被快速生成了:

在python程序中生成二维码

如果你需要在python程序中使用qrcode生成二维码,那么自然也是很容易做到的。

快速生成:

import qrcode

message = "hello world"
filename = "hello_world.png"
img = qrcode.make(message)
img.save(filename)

当然,你也可以控制更多信息,如大小,颜色等:

import qrcode

message = "hello world"
filename = "hello_world.png"

qr = qrcode.QRCode(
    version=1,  # 控制二维码的大小
    error_correction=qrcode.constants.ERROR_CORRECT_L,  # 控制容错级别,也即二维码被污损一部分是否还可能识别
    box_size=10,  # 格子的像素大小
    border=4,  # 边框大小
)
qr.add_data(message)
qr.make(fit=True)

img = qr.make_image(fill_color="green", back_color="yellow")
img.save(filename)

此时,我们就得到了一个不同颜色的二维码:

识别二维码

安装opencv

qrcode是一个用于生成二维码的库,并不适用于识别二维码,因此,我们可以考虑使用opencv识别二维码。

opencv不是一个专门识别二维码的库,但其用途广泛,包括提供了一个QRCodeDetector,可以用于二维码的识别。

使用pip安装opencv:pip install opencv-python

识别二维码

import cv2

image_path = "qrcode.png"
image = cv2.imread(image_path)

detector = cv2.QRCodeDetector()
data, vertices, binary_qrcode = detector.detectAndDecode(image)

if data:
    print("二维码内容:", data)
else:
    print("未检测到二维码")

如果无法识别,那么应该注意提供更加清晰,准确的二维码,减少干扰以及污损的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值