一、安装依赖库

pip install qrcode pillow image zxing

pillow是python3中PIL的代替库,image是生成图版需要用到的库

安装image时报错“Could not install packages due to an EnvironmentError: [Errno 22] invalid mode ('wb') or filename”,没管,直接在pycharm的setting中安装就没报错了。

二、使用qrcode生成二维码

2.1 qrcode简单用法

以下是生成指向百度的二维码为例,用户扫描后会访问百度首页。代码如下。

另外注意我们日常使用是扫一个二维码就跳转到某个页面。但本质而言,扫二维码就是得到内容,而不会跳转什么页面。

比如微信等扫以下二维码就是得到“https://www.baidu.com”,至于自动跳到百度首页是因为微信添加了如果扫描二维码结果是url就自动跳转的代码造成的。

也就是说二维码的内容完全可以不是url,而是“abcd”等仍意字符串,用微信扫时显示“abcd”而不是跳转什么页面而已。

不过由于二维码(指qr code)的容量是有限的,只有几百到几千个字节,所以一般不会直接用来存图片等内容。

import qrcode

# 二维码内容

data = "https://www.baidu.com"

# 生成二维码

img = qrcode.make(data=data)

# 直接显示二维码

img.show()

# 保存二维码为文件

# img.save("baidu.jpg")

生成二维码如下:

2.2 qrcode高级用法

所谓高级用法,就是设置二维码大小、颜色等参数的写法。示例代码如下,其中实例化参意义如下:

version参数----二维码的格子矩阵大小,可以是1到40,1最小为21*21,40是177*177

error_correction参数----二维码错误容许率,默认ERROR_CORRECT_M,容许小于15%的错误率

box_size参数----二维码每个小格子包含的像素数量

border参数----二维码到图片边框的小格子数,默认值为4

import qrcode

# 实例化二维码生成类

qr = qrcode.QRCode(

version=1,

error_correction=qrcode.constants.ERROR_CORRECT_L,

box_size=10,

border=4,

)

# 设置二维码数据

data = "https://www.baidu.com"

qr.add_data(data=data)

# 启用二维码颜色设置

qr.make(fit=True)

img = qr.make_image(fill_color="green", back_color="white")

# 显示二维码

img.show()

生成二维码如下:

三、使用zxing识别二维码

3.1 zxing报错处理

google流行的是使用qrtools来读二维码,但是qrtools依赖zbar不兼容python3,其替代品zbarlight在windows安装又很麻烦,直接放弃了。

又回头折腾百度上流行的zxing,zxing一直报”python zxing OSError: [WinError 6] 句柄无效“,直接搜“if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:”。看到这篇文章说windows上报这个错可以直接“注释掉subprocess.py中的 _cleanup()方法”。虽然说的不是zxing,但库是一样的,姑且一试还真可以。

如下图所示,将_cleanup()直接注释掉:

3.2 zxing识别二维码代码

import zxing

reader = zxing.BarCodeReader()

barcode = reader.decode("baidu.jpg")

print(barcode.parsed)

3.3 运行示例

使用2.1中的代码生成并保存二维码,解析运行结果如下:

python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程相关推荐

  1. python模拟火车订票系统代码_Python3.6实现12306火车票自动抢票,附源码

    原标题:Python3.6实现12306火车票自动抢票,附源码 Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已 ...

  2. python动作识别代码_基于openpose的动作识别(二)

    在windows平台使用pythonAPI运行一个识别手指的demo 一.准备文件 1.下载源码 https://github.com/CMU-Perceptual-Computing-Lab/ope ...

  3. python人脸识别代码百度ai_python百度AI人脸识别API测试

    1.注册账号 2.创建应用 3.得到AK和SK 4.用AK SK获取access_token 可用下面的代码: #!/usr/bin/python3.5 # encoding:utf-8 import ...

  4. python电影数据爬取的代码_Python3.5:爬取网站上电影数据

    首先我们导入几个pyhton3的库: from urllib import request import urllib from html.parser import HTMLParser 在Pyth ...

  5. cnn验证码识别代码_中文项目:快速识别验证码,CNN也能为爬虫保驾护航

    原标题:中文项目:快速识别验证码,CNN也能为爬虫保驾护航 机器之心专栏 作者:Nick Li 随着卷积网络的推广,现在有各种各样的快捷应用,例如识别验证码和数学公式等.本文介绍了一个便捷的验证码识别 ...

  6. 扫码点菜系统代码_餐厅点餐只能选择“桌上扫码”?点餐方式岂能“一刀切”...

    国庆长假期间,餐饮市场异常火爆.不少餐厅都推出了"桌上扫码点餐",个别餐厅甚至没有纸菜单,顾客只能手机扫码点餐,这样的方式真的合适吗? 在南京新街口一家餐厅,服务员提醒记者通过桌子 ...

  7. 图卷积网络进行骨骼识别代码_深兰科学院:动作识别——人体骨架时空图卷积网络的关节图构造方法简介...

    港中文团队论文的主要内容 1 Introduction 近年来,人类动作识别已成为活跃的研究领域,因为它在视频理解中起着重要作用.一般而言,人类行为可以从多种形式中识别,例如外观.深度. 光流和人体骨 ...

  8. 关于HTML加密混淆、源码保护、代码安全,防止解压直接看源码

    转载:https://my.oschina.net/1590538xiaokai/blog/478842 摘要: 一直有人问HTML加密混淆怎么做,其实这在业内是早已很多人研究过的课题. 最近闲暇之余 ...

  9. 关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码

    一直有人问HTML加密混淆怎么做,其实这在业内是早已很多人研究过的课题. 假日期间整理一篇文章分享给大家. 我们先理下需求,加密的目的是什么?加密到什么级别?为此我们可以牺牲什么? 我们知道这个世界不 ...

最新文章

  1. c语言 栈结构存放数据类型,数据结构——栈的详解
  2. [HDU 1427]速度计算24点(DFS暴力搜索)
  3. 第六章 深度学习(中下)
  4. java8安装_JMeter必知必会系列(2) JMeter安装部署
  5. php取指定文件夹图片大小,php获取某文件夹的大小
  6. mysql分区表优缺点,Mysql 表分区和性能
  7. 微信停机断网可充话费;苹果正研发可折叠屏幕 iPad;Rust 1.36.0 发布 | 极客头条...
  8. 广义线性模型和线性回归
  9. 万能弹窗代码,能突破大部分弹窗拦截插件
  10. 论文阅读 [TPAMI-2022] VolterraNet: A Higher Order Convolutional Network With Group Equivariance for Homo
  11. 淘宝视频内容标签的结构化分析和管理
  12. 如何让网站在浏览器网址前面显示小图标?ico图标怎么放?
  13. 惠州市有哪些学计算机的学校,惠州有哪些好学校?
  14. 【ResNet残差网络解析】
  15. Modesim仿真出现vlog-2388问题
  16. 通过宏快速破解EXCEL文件密码
  17. ToolStrip添加任意控件实现
  18. wdatepicker设置时间范围_如何设置光固化3D打印机切片参数
  19. Internet黑洞
  20. 游戏服务器 脚本任务系统,玩家杀死野怪系统自动触发任务系统的脚本

热门文章

  1. 什么是具有舆论属性或者社会动员能力的算法推荐服务提供者
  2. 关于对四维空间一些理解
  3. 循环结构——求ASCII码之和
  4. Winform BLE 蓝牙通信
  5. JDK8中Lambda深入理解和Stream实践
  6. PHP实现文本快速查找 - 二分查找法
  7. 交直轴电感matlab_永磁电机交直轴电感Lq Ld仿真计算ANSOFT实例详解.pdf
  8. 有关于双核补丁的扫盲
  9. react项目中集成ckplayer播放器插件
  10. C程序|实现使用OPENSSL库 发送HTTPS请求,并接收数据|例如请求12306获取高铁、动车、火车车次信息的方法