用 Python 生成炫酷二维码及解析

我们通过 Python 生成以及识别二维码需要用到的库为:qrcode、myqr、zxing,
安装通过 pip install qrcode/myqr/zxing 即可。

一、二维码结构

首先,我们来简单了解一下二维码的结构,如下图所示:

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

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

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

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

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

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

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

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

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

二、生成二维码

创建二维码我们可以使用 qrcode 和 myqr 两个 Python 库,下面来具体看一下。

qrcode

生活我们可能会看到一些二维码,在我们扫描之后跳到了某个地址,这样的功能 qrcode 就可以实现,来看一下示例:

import qrcode#二维码内容(链接地址或文字)
data = 'https://www.baidu.com/'
#生成二维码
img = qrcode.make(data=data)
#显示二维码
img.show()
#保存二维码
#img.save('qr.jpg')

看一下效果:

我们扫描上面这个二维码就可以跳转到我们设置的地址了。

上面的二维码比较原始,我们还可以对其进行简单的设置和美化,代码实现如下所示:

import qrcode'''
version:二维码的格子矩阵大小,可以是 1 到 40,1 最小为 21*21,40 是 177*177
error_correction:二维码错误容许率,默认 ERROR_CORRECT_M,容许小于 15% 的错误率
box_size:二维码每个小格子包含的像素数量
border:二维码到图片边框的小格子数,默认值为 4
'''
qr = qrcode.QRCode(version=2,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=15,border=3,
)
# 二维码内容
data = 'https://www.baidu.com/'
qr.add_data(data=data)
# 启用二维码颜色设置
qr.make(fit=True)
img = qr.make_image(fill_color='blue', back_color='white')
# 显示二维码
img.show()

看一下效果:

myqr

如果我们对上面生成二维码的样式不满意,我们就需要用到 myqr 库了,它不仅可以生成普通二维码,还可以生成带图片的二维码以及动态二维码,但我们想要查看生成的二维码时,需要到保存位置手动打开查看。

普通二维码

我们先使用 myqr 来生成一个普通二维码,看一下示例:

from MyQR import myqr'''
words:内容
version:容错率
save_name:保存的名字
'''
myqr.run(words='https://www.baidu.com/',version=1,save_name='myqr.png')

看一下效果:

带图二维码

我们接着使用 myqr 来生成一个带图的二维码,看一下示例:

from MyQR import myqr'''
picture:生成二维码用到的图片
colorized:False 为黑白,True 为彩色
'''
myqr.run(words='https://www.baidu.com/',version=1,picture='bg.jpg',colorized=True,save_name='pmyqr.png')

看一下效果:

动态二维码

最后,我们使用 myqr 来生成一个动态二维码,看一下示例:

from MyQR import myqrmyqr.run(words='https://www.baidu.com/',version=1,picture='my.gif',colorized=True,save_name='myqr.gif')

看一下效果:

三、 解析二维码

我们通过 zxing 库来识别二维码,使用也比较简单,下面通过示例来看一下:

import zxingreader = zxing.BarCodeReader()
barcode = reader.decode('myqr.gif')
print(barcode.parsed)

执行结果:

https://www.baidu.com/

当然我们还可以对现有二维码进行美化,实现方式为:

  • 解析现有二维码内容

  • 使用解析的内容生成新的二维码

四、总结

本文我们介绍了如何使用 Python 来生成和识别二维码,通过本文的学习,我们可以使用一些自己喜欢的静态图片或 GIF 文件来制作一些特定的二维码。

文章源自:https://mp.weixin.qq.com/s/V2g6DICFkVDOg-kI3QmnrA,侵删

用 Python 生成炫酷二维码及解析相关推荐

  1. 如何用 Python 生成炫酷二维码及解析

    如今二维码可以说遍及了我们生活的各个角落,基本上我们的衣食住行都会见到二维码的身影.Python 用于生成及解析二维码的库为:qrcode.myqr 和 zxing,安装通过 pip install ...

  2. python实现炫酷二维码

    二维码在现实生活中的应用越来与普遍,归功于 QR code 码制的流行.我们常说的二维码就是它,所以,二维码又被称为 QR code. QR code 是一种矩阵式二维条码(又称棋盘式二维条码).它是 ...

  3. 一行代码实现自制炫酷二维码

    一行代码实现自制炫酷二维码 文章目录 一行代码实现自制炫酷二维码 一.简介 二.安装模块 三.制作二维码 1.导入模块 2.选择一个链接生成二维码 3.生成动态的二维码 一.简介 现在,二维码十分的普 ...

  4. 一行代码用表情包制作炫酷二维码,详细教程奉上,包学会

    想自己动手 制作一款专属的炫酷二维码吗? (初代奥特曼震场子) 咱们开始学习吧~ 1.用"运行-cmd"安装myqr包 基本环境是python 3.x,但建议学习python的同学 ...

  5. 各类炫酷二维码的制作(附带GUI工具开发)

    作者:小小明 效果展示 动态二维码 用头像作底图的个人微信二维码 多张二维码组合动图 动态二维码的制作 首先打开个人开发的二维码生成器: 然后输入二维码要保存的网址.二维码保存位置,以及动图所在位置: ...

  6. 【基础入门详解】程序员的二维码也要玩出不同色彩,用Python生成动态彩色二维码

    一.前言 常见的二维码为QR CodeCode,QR全称是Quick Response,是一个近几年来移动设备上超流行的一种编码方式.它的结构如下: 主要有以下特点: 符号规格从版本1(21×21)到 ...

  7. python 生成带logo二维码

    -- coding: utf-8 -- """ pip install image pip install qrcode author = 'haiousy@163.co ...

  8. python将微信二维码转化为炫酷二维码

    第一步:将你的微信二维码保存下来. 第二步:打开草料二维码,在更多工具里找到上传二维码. 第三步:将你的二维码上传,会返回给你一个URL链接,复制下来. 第四步:WIN+R打开命令提示符,输入 pip ...

  9. 0基础用python制作自己的炫酷二维码

    写在前面 注意项目名不能是中文,亲测同样的代码,在中文名的文件里会错误,但是在main.py里运行正常. 首先当然是下python了,这里就不说了. 这里我们需要用到myqr的库 1.导入myqr库 ...

最新文章

  1. Python列表之for循环应用
  2. SQLite入门与分析(四)---Page Cache之事务处理(3)
  3. 【数据字典】国标数据字典
  4. Java Thread Status(转)
  5. Codeforces Round #715 (Div. 1) C. Complete the MST 补图 + 思维 + 最小生成树
  6. 洛谷P4389:付公主的背包(多项式、生成函数)
  7. 那些容易遗忘的web前端问题
  8. 时域补零对于DFT谱的影响
  9. 会买单吗?李楠创办的怒喵科技发布新品牌了,推出潮流无线桌面产品
  10. 【Vue】—动态绑定v-bind
  11. oracle24801错误,[数据库]oracle错误(ORA
  12. iis访问服务器文件夹权限设置,Windows中合理设置共享文件夹访问权限
  13. emc整改措施及案例_EMC整改案例分享
  14. 百度离线地图金字塔瓦片发布
  15. Disturbed People_CodeForces1077B
  16. 基于JAVA糖果销售管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  17. MySQL varchar类型可以存储多少个汉字
  18. 室性心律失常影响因素分析
  19. 软件测试入门之软件测试的概念与过程(精辟内容)
  20. 悼念:黑白素色网页背景设置教程

热门文章

  1. linux 命令行封装,自己封装Linux命令行万能解压命令
  2. html5基于canvas制作酷炫,应用HTML5 Canvas制作酷炫科技背景动画特效
  3. 客服外包公司可信吗?
  4. arduino小车电机不转_新一代信息技术Arduino作品要求
  5. 【100%通过率】华为OD机试真题 C 实现【通信误码】【2022.11 Q4 新题】
  6. 计算机体系结构 第1-2章 量化设计与分析基础/指令系统原理与示例
  7. unity音频 Android,【Unity3D】如何读取并播放 Android 本地的 wav 音频
  8. 7. Linux驱动 - 中断与异常
  9. WinAVI Video Converter V9.09 汉化绿色特别版
  10. SCAU 8631 盒子上的蚂蚁