首页 > 编程语言 >python生成二维码

python生成二维码

时间:2022-10-04 12:33:37浏览次数:57  
标签:qr ver name python 生成 二维码 图形

前言

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

二维码基础知识

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

  • 空白区:留白,不需要做任何处理
  • 位置探测图形:协助扫描软件定位二维码码
  • 位置探测图形分隔符:区分功能图形和编码区
  • 定位图形:指示标识密度和确定坐标系
  • 校正图形:校正图形的数量和位置
  • 格式信息:存放格式化数据的信息
  • 版本信息:二维码的规格,二维码符号共有 40 种规格的矩阵
  • 数据和纠错码字:实际保存的二维码信息和纠错码字

生成二维码

1.MyQR生成二维码

from MyQR import myqr

# 生成静态二维码
ver, level, qr_name = myqr.run(words="123456")
print(ver, level, qr_name)

# 根据url生成二维码
ver, level, qr_name = myqr.run(words="https://www.baidu.com/")
print(ver, level, qr_name)

# 静态二维码---添加图片做成艺术二维码
ver, level, qr_name = myqr.run(words="https://www.baidu.com/", colorized=True,save_name='bairui.png')
'''
colorized=True 彩色二维码
colorized=False 黑白二维码
'''
print(ver, level, qr_name)

二维码

2.qrcode生成二维码

import qrcode
  
# 调用QRCode,可以接收以下参数
"""
version: 二维码的格子大小,可以是1到40。值越大,格子越大,一般不超过10,选择3比较合适
error_correction: 二维码错误容许率,默认为qrcode.constants.ERROR_CORRECT_M,容许小于 15% 的错误率
         此外还有qrcode.constants.ERROR_CORRECT_L: 容许小于 7% 的错误率
         qrcode.constants.ROR_CORRECT_H: 容许小于 30% 的错误率
box_size: 二维码每个小格子包含的像素数量
border: 二维码到图片边框的小格子数,默认值为 4         
"""
qr = qrcode.QRCode() # 事实上里面的参数我们可以都不指定,默认会选择一个比较合适的参数
  
# 调用add_data,指定url。
qr.add_data("https://www.baidu.com/")
# 生成二维码图像,颜色为蓝色,背景色为粉色
img = qr.make_image(fill_color='blue', back_color='pink')
# 显示图像,这个会打开一个临时文件
img.show()
# 此外,我们还可以保存到硬盘上
img.save("1.png")
  
# 事实上,这个img实际上是通过PIL模块得到的,可以理解为里面Image对象
# 如果你熟悉PIL模块的话,那么你应该知道可以将里面Image对象保存成图片对应的字节流
from io import BytesIO
buf = BytesIO()
img.save(buf) # 将字节保存到buf里面
with open("2.png", "wb") as f:
  f.write(buf.getvalue()) # 和直接保存为1.png是一样的

以上就是如何用Python生成二维码的详细内容,更多关于Python生成二维码的资料请关注博主其它相关文章!

标签:qr,ver,name,python,生成,二维码,图形
From: https://www.cnblogs.com/qi66/p/16753570.html

相关文章

  • Python中优雅的字典技巧总结
    1.引言在日常工作中,大家都需要进行字典的相关操作,对于某些初学者,经常会写一堆繁琐的代码来实现某项简单的功能。本篇文章重点介绍一些在Python中关于字典的一些简单技巧,熟......
  • skywalking 实现收集基于python的Django项目链路追踪案例
    一、python3环境设置1.1、安装python3apt-getupdateaptinstallpython3-pip-ypipinstall"apache-skywalking"[root@skywalking-agent-07~]#pipinstall"apache-s......
  • 0555-6.1.0-使用Python并发访问认证和非认证集群
    作者:李继武1文档编写目的Fayson在前面的文章《​​0553-6.1.0-如何使用Java代码同时访问安全和非安全CDH集群​​》和《​​0554-6.1.0-同一java进程中同时访问认证和非认证......
  • python在VScode中中文输出乱码的解决方案
    ————————————————版权声明:本文为CSDN博主「Rhett.Yao」的原创文章。原文链接:https://blog.csdn.net/m0_63109538/article/details/126419637——————......
  • 生成模型VAE、GAN和基于流的模型详细对比
    在IanGoodfellow和其他研究人员在一篇论文中介绍生成对抗网络两年后,YannLeCun称对抗训练是“过去十年里ML最有趣的想法”。尽管GANs很有趣,也很有前途,但它只是生成模型家......
  • python系列教程196——参数匹配
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于......
  • 【Web开发】Python实现Web服务器(Bottle框架)
    Django-TheWebframeworkforperfectionistswithdeadlines.Flask-ThePythonmicroframeworkforbuildingwebapplications.Tornado-TornadoisaPythonw......
  • Python代码调试方法
    对于每个程序开发者来说,调试几乎是必备技能。常用Pycharm编辑器里的方法有Print大法、log大法,但缺少类似Matlab的变量区,给代码调试带来不便,特别是在有函数的情况下,变量无法......
  • python 批量删除超过某时长的视频 (改)
    importos.pathfrommoviepy.editorimportVideoFileClipfromtqdmimporttqdmdefget_file_names(path):return[os.path.join(path,f)forfinos.listdir(......
  • python partition函数_Python partition()函数的使用方法
    一、partition()函数的语法格式string_name.partition(separator)(1)string_name为要被分隔的字符串或字符串变量。(2)该函数有一个字符串类型的参数:separator,该参数用于指......