当前位置:首页 > python知识 > 正文内容

【python】如何利用python生成二维码

亿万年的星光4年前 (2021-07-17)python知识9730

0.前言

二维码在我们的生活中可以说是必不可少的,不单单是手机支付、其它很多地方也都需要扫描二维码。那么下面我们就来看看如何使用python来生成二维码、以及识别二维码。

关于二维码,我们来说一下它的结构。


从图中我们可以看出二维码结构整体划分为功能图形和编码区两大部分,功能图形又细分为:空白区、位置探测图形、位置探测图形分隔符、定位图形、校正图形,而编码区细分为:格式信息、版本信息、数据和纠错码字,来简单了解一下每一部分的功能:

  • 空白区:留白,不需要做任何处理

  • 位置探测图形:协助扫描软件定位二维码码

  • 位置探测图形分隔符:区分功能图形和编码区

  • 定位图形:指示标识密度和确定坐标系

  • 校正图形:校正图形的数量和位置

  • 格式信息:存放格式化数据的信息

  • 版本信息:二维码的规格,二维码符号共有 40 种规格的矩阵

  • 数据和纠错码字:实际保存的二维码信息和纠错码字(用于修正二维码损坏带来的错误)


1.生成二维码的方式

利用python生成二维码的方式一般有两种qrcode和myqr。本文选用的是myqr。MyQR 库是 Python 中最流行的二维码制作函数库。它通过一个简单的函数就可生成生动有趣的二维码,可谓是二维码制作神器。

2.MyQR的安装与使用

安装

在系统命令行输入pip install MyQRpip install myqr即可

使用

我们经常使用 MyQR 库中的一个模块 myqr 来制作二维码,引用方式为from MyQR import myqr其参数如下所示:

words:二维码内容,链接或者句子
version:二维码大小,范围为[1,40]
level:二维码纠错级别,范围为{L,M,Q,H},H为最高级,默认。
picture:自定义二维码背景图,支持格式为 .jpg,.png,.bmp,.gif,默认为黑白色
colorized:二维码背景颜色,默认为 False,即黑白色
contrast:对比度,值越高对比度越高,默认为 1.0
brightness:亮度,值越高亮度越高,默认为 1.0,值常和对比度相同
save_name:二维码名称,默认为 qrcode.png
save_dir:二维码路径,默认为程序工作路径

普通二维码的制作:

如果要做一个没有任何背景的二维码,则参考下面:

from  MyQR import myqr
myqr.run(words="https://www.baidu.com/",version=9,
        save_name='baidu.jpg',
        save_dir='D:/'
        )

程序执行后,我们就可以在D盘的根目录下,找到下面这张二维码。


带背景图的二维码:

此处指的是使用静态图像生成的以图片为背景的彩色或黑白的二维码,我们下载了一张照片如下:


我们把这张照片放到D盘的根目录,并命名为111.png。

参考代码如下:

from  MyQR import myqr
myqr.run(words="https://www.baidu.com/",version=9,picture="D:/111.png",colorized=True,
        save_name='baidu.png',
        save_dir='D:/'
        )

效果图如下:


动态二维码:

此处指的是使用 gif图片作为背景图而生成的动态二维码。我们去下载一个gif动画。


我们下载后,存放D盘,名字123.gif。

然后我们参考下面的代码

from  MyQR import myqr
myqr.run(words="https://www.baidu.com/",version=9,picture="D:/123.gif",colorized=True,
        save_name='baidu.gif',
        save_dir='D:/'
        )

生成后的效果如下:




扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

ICode—1级训练场(基础训练2)参考答案(python版)

ICode—1级训练场(基础训练2)参考答案(python版)

1.a = 4  Dev.step(a)2.a = 1  for i in range(4): &nbs...

ICode—1级训练场(基础训练1)参考答案(scratch版)

ICode—1级训练场(基础训练1)参考答案(scratch版)

1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20....

【python】常见内置函数及用法汇总

函数名释义说明示例abs()绝对值函数求一个数的绝对值all()any()bin()二进制函数将一个十进制的数转换成二进制bool布尔函数...

ICode—编程一小时(python版) 参考答案

ICode—编程一小时(python版) 参考答案

1.Dev.step(4) Spaceship.step(2) Dev.turnRight() Dev.step(3)2.Dev.step(4)3.Dev.step(6)4.Dev.step(4...

 ICode—1级训练场(基础训练2)参考答案(scratch版)

ICode—1级训练场(基础训练2)参考答案(scratch版)

1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20....

ICode—编程一小时(scratch版) 参考答案

ICode—编程一小时(scratch版) 参考答案

网址:ICode.org1.2.3.4.5.6.7.8.9.10....