百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

包教包会!python -- 生成二维码与解码

off999 2024-10-04 18:57 20 浏览 0 评论

[赞]?[赞]?[赞]?[赞]?[赞]?[赞]


1

  • QR Code码是由日本于1994年9月研制的一-种矩阵二维码符号,它具有一维条码及其它二 维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。
  • qrcode模块是Github_上的一-个开源项目,提供了生成二维码的接口。qrcode默认使用PIL库用于生成图像。由于生成qrcode图片需要依赖Python的图像库,所以需要先安装Python图像库PIL(Python Imaging Library)。
  • QR码符号共有40种规格,分别为版本1、版本…版本40版本1的规格为21模块x21模块,版本2为25模块x25模块,以此类推,每一版本符号比前一版本每边增加4个模块,直到版本40,规格为177模块X177模块。其中最高版本40可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。由于其高密度编码,信息容量大,所以被广泛采用。


qrcode.QRCode(
	version=1,
	error_ correction=qrcode.ERROR_ CORRECT_ _L, 
	box_ size=10,
	border=4,
	image_ factory=None,
	mask_ pattern=None)

参数详解:

* error_ correction:控制二维码纠错级别。
  • ERROR_ CORRECT_ _L:大约7%或者更少的错误会被更正。
  • ERROR_ CORRECT_ _M:默认值,大约15%或者更少的错误会被更正。
  • ERROR_ CORRECT_ Q:大约25%或者更少的错误会被更正。
  • ERROR_ CORRECT_ H:大约30%或者更少的错误会被更正。
  • box_ size: 控制二维码中每个格子的像素数,默认为10。
  • border:控制二维码四周留白包含的格子数,默认为4。
  • image_ factory: 选择生成图片的形式,默认为PIL图像。
  • mask_ pattern: 选择生成图片的的掩模。

其余方法

  • add_ _data(str,optimize=20):添加要转换的文字到data参数; 如果使用了optimize优化参数,数据将被拆分为多个块来进行优化,以找到一个长度至少为这个值的足够简洁的方式来生成二维码。设置为"0”以避免优化。
  • make(fit=True):当fit参数为真或者没有给出version参数时,将会调用best_ fit方法来找到适合数据的最小尺寸。
  • make_ image(ill color=None, back_ color=None,image_ factory=None):创建二维码的图像并返回,默认为PIL图像。

示例1

import qrcode

qr = qrcode.QRCode(
    version=5,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)

qr.add_data('https://editor.csdn.net/')

qr.make(fit=True)
img = qr.make_image()
filename = 'qrcode.png'
img.save(filename)
img.show()

生成带有图片的二维码

from PIL import Image
import qrcode

qr = qrcode.QRCode(
    version=5,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
qr.add_data('https://www.cnblogs.com/nthforsth/')
qr.make(fit=True)

img = qr.make_image()
img = img.convert("RGBA")

# 添加logo,打开logo照片
icon = Image.open("C:\\Users\\hasee\\Pictures\\HTML\\tempsnip.png")

  # 获取图片的宽高
img_w, img_h = img.size
# 参数设置logo的大小
factor = 4
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)
icon = icon.convert("RGBA")

# 黏贴logo照
img.paste(icon, (w, h),icon)
img.show()

制作动态二维码

安装 myqr 和 pillow

这里如果要制作动态二维码,则需要使用myqr库。所以先安装。

安装步骤如上,在cmd中输入 pip install myqr

再在cmd中输入 pip install pillow

动态的二维码

from MyQR import myqr

myqr.run(
    words='https://www.cnblogs.com/nthforsth/p/12290779.html', # 扫描二维码后,显示的内容,或是跳转的链接
    version=5,# 设置容错率
    level='H',# 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
    picture='D:\\HYLiteResources\\video\\1545149949868.gif',# 图片所在目录,可以是动图
    colorized=True, # 黑白(False)还是彩色(True)
    contrast=1.0, # 用以调节图片的对比度,1.0 表示原始图片。默认为1.0。
    brightness=1.0, # 用来调节图片的亮度,用法同上。
    save_name='Python.gif' # 控制输出文件名,格式可以是 .jpg, .png ,.bmp ,.gif
)

利用OpenCV解码二维码

装包

pip install opencv-python

解码

import cv2
d=cv2.QRCodeDetector()
val,_,_ = d.detectAndDecode(cv2.imread('test.jpg'))   # 绝对路径也可
print('text is:',val)

相关推荐

SPC相关的计算用excel和python实现【源码下载】

做SPC分析涉及到很多计算,比如CPK、PPK、概率图、PPM等等,网上很多公式,但具体实现却不是那么容易的。我们整理了这些用excel和python实现的代码。包括但不限于以下的内容:SPC分析中的...

Python学不会来打我(34)python函数爬取百度图片_附源码

随着人工智能和大数据的发展,图像数据的获取变得越来越重要。作为Python初学者,掌握如何从网页中抓取图片并保存到本地是一项非常实用的技能。本文将手把手教你使用Python函数编写一个简单的百度图片...

django python数据中心、客户、机柜、设备资源管理平台源码分享

先转发后关注,私信“资源”即可免费获取源码下载链接!本项目一个开源的倾向于数据中心运营商而开发的,拥有数据中心、客户、机柜、设备、跳线、物品、测试、文档等一些列模块的资源管理平台,解决各类资源集中管理...

熬夜也值得学习练手的108个Python项目(附源码),太实用了!

现在学编程的人越来越多,Python因为简单好上手、功能又强大,成了很多人的首选。不管是做数据分析、人工智能,还是写网络程序、自动化脚本,Python都能派上用场。而且它诞生的时间比网页还早,作为...

这五个办公室常用自动化工具python源码,复制代码就能用

办公室自动化现在能看这文章的恐怕大部分都是办公室久坐工作者,很多都有腰肌劳损、肩周炎等职业病,难道就不能有个工具缓解一下工作量吗?那么恭喜你点进了这篇文章,这篇文章将使用python直接实现五个常...

将python源代码封装成window可执行程序教程

将python源代码封装成window可执行程序教程点击键盘win+r打开运行框在运行框中输入cmd,进入到命令行。在命令行中输入piplist去查看当前电脑中所有的库检查是否有pyinstall...

Python 爬虫如何爬取网页源码?(爬虫获取网页源代码)

下面教大家用几行代码轻松爬取百度首页源码。什么是urllib?urllib库是Python内置的HTTP请求库,它可以看做是处理URL的组件集合。urllib库包含了四大模块,具体如下:urllib....

Python RPC 之 Thrift(python是做什么的)

thrift-0.12.0python3.4.3Thrift简介:Thrift是一款高性能、开源的RPC框架,产自Facebook后贡献给了Apache,Thrift囊括了整个RP...

用Python编写FPGA以太网MAC(附源码下载方式)

来源:EETOP作者:ccpp123略作了解后发现,MyHDL不是高层次综合,它实际上是用Python的一些功能实现了一个Verilog仿真器,能对用Python写的仿Verilog语言进行仿...

python爬虫常用工具库总结(python爬虫工具下载)

说起爬虫,大家可能第一时间想到的是python,今天就简单为大家介绍下pyhton常用的一些库。请求库:实现基础Http操作urllib:python内置基本库,实现了一系列用于操作url的功能。...

手把手教你使用scrapy框架来爬取北京新发地价格行情(理论篇)

来源:Python爬虫与数据挖掘作者:霖hero大家好!我是霖hero。上个月的时候,我写了一篇关于IP代理的文章,手把手教你使用XPath爬取免费代理IP,今天在这里分享我的第二篇文章,希望大家可以...

2025年Python爬虫学习路线:第1阶段 爬虫基础入门开始

这个阶段的目标是让你熟悉Python的基础知识、了解HTTP请求和HTML是如何工作的,并最终完成你的第一个爬虫小项目——抓取名言!按照计划,我们首先要打好Python基础。Python就像是我们要...

如何入门 Python 爬虫?(python零基础爬虫)

1.很多人一上来就要爬虫,其实没有弄明白要用爬虫做什么,最后学完了却用不上。大多数人其实是不需要去学习爬虫的,因为工作所在的公司里有自己的数据库,里面就有数据来帮助你完成业务分析。什么时候要用到爬虫呢...

突破爬虫瓶颈:Python爬虫核心能力提升与案例实操

技术控必看!Python爬虫高手进阶全攻略,解锁数据处理高阶玩法在数字化时代,Python爬虫早已成为数据探索者手中的得力工具。从基础的网页抓取到复杂的数据处理,每一次技术升级都能带来新的突破。本文将...

网络爬虫开源框架(网络爬虫的框架)

目前开源爬虫下载框架是百花齐放,各个编程语言都有,以下主要介绍其中重要的几个:1)python:scrapy,pyspider,gcrawler2)Java:webmagic,WebCollector...

取消回复欢迎 发表评论: