用python做二维码,基于python的二维码识别
目录1。案例介绍2。准备3。详细设计3.1二维码的生成3.2二维码的分析4。代码摘要5。运行结果后记。
1.案例介绍我们使用Python提供的二维码库和pyzbar库来制作和解码二维码。
2.准备二维码库。枕头图书馆。皮兹巴图书馆。
3.详细设计
3.1生成二维码核心码:
qr=二维码。二维码()
qr.add_data(数据)
qr.make(fit=True)
IMG=QR . make _ image(fill _ color= black ,back _ color= white )我们使用二维码提供的add_data、make、make_imge方法实现加载数据、生成二维码对象、将二维码对象保存到图片的功能。
3.2解析二维码的核心代码:
decode _ data=pyzbar . decode(image . open(file path),symbols=[pyzbar . zbar symbol . QR code]][0]。data.decode (UTF-8 )我们使用pyzbar提供的解码方法读取二维码图片并解码。
pyz bar . decode(image . open(file path),symbols=[pyzbar。ZBarSymbol .二维码])
[Decoded(data=b abcdefghijkl 123 ,type=QRCODE ,rect=Rect(left=4,top=4,width=84,height=84),polygon=[Point(x=4,y=4),Point(x=4,y=88),Point(x=88,y=88),Point(x=88,y=4)]
4.代码摘要#编码:utf-8
# !/usr/bin/python
@File : QRcode.py
@作者:家明
@修改时间:2020/1/13 19:55
@联系人:
@版本:1.0
@描述:生成传统二维码
传统二维码分析
导入二维码
从PIL进口图片
从皮兹巴进口皮兹巴
file path= C:\ \ Users \ \ jiaming \ \ Desktop \ \ QR code . png
def create_QRcode(data= ):
:返回:生成的二维码路径
打印(生成传统二维码.)
#用数据填充二维码
版本:取值1~40的整数,控制二维码的大小(最小值为1,为1212矩阵)。如果您希望程序自动确定,只需将值设置为None并使用fit参数。
Error_correction:控制二维码的纠错功能。可以取以下四个常数。
ERROR_CORRECT_L:大约7%或更少的错误可以被纠正。
ERROR_CORRECT_M(默认值):大约15%或更少的错误可以被纠正。
ROR_CORRECT_H:大约30%或更少的错误可以被纠正。
ERROR_CORRECT_Q:可以纠正高达25%的错误。
Box_size:控制二维码中每个小网格包含的像素数。
边框:控制边框包含的网格数(二维码与图片边界的距离)(默认值为4,是相关标准规定的最小值)。
qr=二维码。二维码(
error _ correction=QR code . constants . error _ CORRECT _ L,
box_size=4,
border=1,
)#格式化图片
qr.add_data(数据)
qr.make(fit=True)
#生成二维码
img=QR . make _ image(fill _ color= black ,back_color=white )
img.save(文件路径,dpi=(254.0,254.0))
打印(保存路径:,文件路径)
返回文件路径
def decode_QRcode(filePath= ):
:param filePath:要识别的二维码的路径。
:return:打印出识别的结果。
decode _ data=pyzbar . decode(image . open(file path),symbols=[
皮兹巴。zbar symbol . QR code])[0]. data . decode( utf-8 )
Print(解码数据:,decode_data)
返回decode_data
if __name__==__main__ :
create _ QR Code( abcdefghijkl 123 )#传入的参数是要编码的数据。
Decode_QRcode(filePath) #传入的参数是要识别的二维码。
5.运行结果
后记以上是我们今天的内容。我们可以尝试用交互界面来改进我们的案例。小黑盒看起来还是很丑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。