Python二维码生成器qrcode库入门

qrcode是二维码生成的Python开源库,官方地址为python-qrcode。所有代码见:Python-Study-Notes。

文章目录

  • Python二维码生成器qrcode库入门
  • 1 简介
  • 2 用法
    • 2.1 基础使用
      • 2.1.1 命令行使用
      • 2.1.2 Python接口
      • 2.1.3 二维码解析
    • 2.2 高级使用
      • 2.2.1 二维码自定义
      • 2.2.2 二维码输出
      • 2.2.3 二维码图像样式
  • 3 参考

1 简介

qrcode依赖于pillow,安装代码如下:

pip install qrcode[pil]

什么是二维码QRCode?

快速响应码Quick Response Code(QRCode)是一种二维象形码,具有快速的可读性和较大的存储容量。 该码由在白色背景上以方形图案排列的黑色模块组成(可以更改颜色)。 编码的信息可以由任何类型的数据组成(例如,二进制、字母数字或汉字符号)。二维码能存储大量的数据,将所有数据存储为方形网格中的一系列像素。二维码详细的细节和原理见二维码的生成细节和原理。

2 用法

2.1 基础使用

2.1.1 命令行使用

从命令行,使用已安装的qr脚本:

! qr "hello world!" > test1.png

然后我们可以在当前路径获得一个名为test1.png的二维码文件,图像宽高为290。图片显示代码如下:

from PIL import Image
from IPython.display import displayimg = Image.open('test1.png', 'r')
print("img size is {}".format(img.size))# 显示图片
display(img)
img size is (290, 290)

2.1.2 Python接口

在 Python 中,使用make快捷功能,也可以输出二维码图像,代码如下:

import qrcode
# 构建二维码
data = 'hello world!'
img = qrcode.make(data)
# 显示图片格式,为qrcode.image.pil.PilImage
print(type(img))
# 保存图片
img.save("test2.png")
<class 'qrcode.image.pil.PilImage'>

2.1.3 二维码解析

如果想查看生成的二维码信息,可以用手机扫描二维码,或者使用草料二维码解析器在线解析图片。解析结果如下图所示:

2.2 高级使用

2.2.1 二维码自定义

我们还可以通过在之前使用该QRCode函数创建的qr对象中添加一些属性来自定义QR 码的设计和结构。基本参数如下:

  • version:一个1 到40之间的整数,用于控制 QR 码的大小(最小的版本1是一个21x21矩阵)。默认为None,表示代码自动确认该参数。
  • error_correction:用于二维码的纠错。qrcode 包中提供了以下四个常量:
    1. ERROR_CORRECT_L 大约可以纠正 7% 或更少的错误。
    2. ERROR_CORRECT_M (默认)大约 15% 或更少的错误可以被纠正。
    3. ERROR_CORRECT_Q 大约 25% 或更少的错误可以被纠正。
    4. ERROR_CORRECT_H 大约可以纠正 30% 或更少的错误。
  • box_size:控制二维码的每个“盒子”有多少像素,默认为10。
  • border:控制边框应该有多少个框厚(默认为 4,这是根据规范的最小值)。
import qrcode
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=4,
)
data = "hello world!"
qr.add_data(data)
qr.make(fit=True)# fill_color和back_color分别控制前景颜色和背景颜色,支持输入RGB色,注意颜色更改可能会导致二维码扫描识别失败
img = qr.make_image(fill_color=( 213 , 143 , 1 ), back_color="lightblue")
display(img)

2.2.2 二维码输出

我们还可以将二维码可以导出为SVG图片。

import qrcode
import qrcode.image.svg
method = 'fragment'
if method == 'basic':# Simple factory, just a set of rects.# 简单模式factory = qrcode.image.svg.SvgImage
elif method == 'fragment':# Fragment factory (also just a set of rects)# 碎片模式factory = qrcode.image.svg.SvgFragmentImage
else:# Combined path factory, fixes white space that may occur when zooming# 组合模式,修复缩放时可能出现的空白factory = qrcode.image.svg.SvgPathImageimg = qrcode.make('hello world!', image_factory=factory)# 保存图片
img.save("test3.svg")

2.2.3 二维码图像样式

要将样式应用于QRCode,请使用StyledPilImage。这需要一个可选的module_drawers参数来控制二维码的形状,一个可选的color_mask参数来改变二维码的颜色,还有一个可选的embeded_image_path参数来嵌入图像。这些二维码并不能保证对所有的二维码识别器都有效,所以做一些实验并将纠错error_correction设置为高(尤其是嵌入图像时)。

python-qrcode提供的二维码的形状列表如下:

python-qrcode提供的二维码的颜色列表如下:

具体使用代码如下:

import qrcode
from qrcode.image.styledpil import StyledPilImage
from qrcode.image.styles.moduledrawers import RoundedModuleDrawer,SquareModuleDrawer
from qrcode.image.styles.colormasks import RadialGradiantColorMask,SquareGradiantColorMask# 纠错设置为高
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H)
# 如果想扫描二维码后跳转到网页,需要添加https://
qr.add_data('https://www.baidu.com')# 修改二维码形状
img_1 = qr.make_image(image_factory=StyledPilImage, module_drawer=RoundedModuleDrawer())
# 修改二维码颜色
img_2 = qr.make_image(image_factory=StyledPilImage, color_mask=SquareGradiantColorMask())
# 嵌入图像
img_3 = qr.make_image(image_factory=StyledPilImage, embeded_image_path="lena.jpg")
# 嵌入图像
img_4 = qr.make_image(image_factory=StyledPilImage, module_drawer=SquareModuleDrawer(), color_mask=RadialGradiantColorMask(), embeded_image_path="lena.jpg")
img_1

img_2

img_3

img_4

3 参考

  • python-qrcode
  • 草料二维码解析器
  • 二维码的生成细节和原理

[python] Python二维码生成器qrcode库入门相关推荐

  1. Python|自制二维码生成器

    1 前言 在如今信息发达的时代,二维码已经是人们生活中不可或缺的东西.比如几乎每天都要用的微信或支付宝支付.那么如何可以制作一个二维码呢?小编将在本文中给大家分享一个自制的二维码生成器. 多人学习py ...

  2. 标星7000+,这个 Python 艺术二维码生成器厉害了!

    微信二维码,相信大家也并不陌生,为了生成美观的二维码,许多用户都会利用一些二维码生成工具. 今天推荐给大家一个有趣的开源项目--Python二维码生成器(目前7.3K Star, GitHub项目地址 ...

  3. [Python]Tkinter-GUI二维码生成器

    基于tkinter.qrcode设计的二维码生成器.用于提高网址等少量文本由PC端向手机端传输的效率问题.支持二维码的尺寸.容错率.像素密度.Logo图片设置,以及参数纠错.二维码的大图查看和保存. ...

  4. python生成二维码的库——qrcode

    一.查找官网 1.百度 qrcode pypi 2.安装 qrcode · PyPI pip install qrcode 3.官网 https://github.com/lincolnloop/py ...

  5. Python生成二维码-qrcode

    # 安装qrcode包 pip install qrcode 简单实现 import qrcodeqrcode.make("https://www.baidu.com").save ...

  6. python pyside2 基于qrcode的库二维码生成器

    自学了两天python的pyside2界面制作,因为和matlab app designer很相似所以入手比较快,二维码生成器是基本上手后制作的 第一个pyside2小项目,也参考了很多人的文章 原本 ...

  7. vue的二维码生成器

    vue项目开发的时候经常会遇到需要将一个网址链接转化为二维码的需求,方便用户扫描观看,以下就是我在寻找vue二维码生成器的时候踩过的坑. 不能用的二维码生成器     qrcode     node- ...

  8. 如何用【Python】制作一个二维码生成器

    前言 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方 式,它比传统的Bar Code条形码能存更多的信息,也能表示更 ...

  9. 如何用Python制作一个简单的二维码生成器

    目录 前言 1.安装第三方库 2.QRCode参数解释 3.自定义二维码生成器 4.给二维码加图片 5.全部代码 6.结果 前言 二维码又称二维条码,常见的二维码为QR Code,QR全称Quick ...

  10. 用python制作简单的二维码生成器

    疫情当下,如何制作一个这样的简单"绿码"呢?(当然不能当健康码用) 首先,你需要准备好这些python库,有些库python自带,如果没有可以pip install自行安装 imp ...

最新文章

  1. linux进程状态d状态,Linux下进程的状态
  2. 使用 Nginx 搭建图片服务器
  3. 三层交换机SVI技术
  4. mvn spring-boot:run 增加jvm启动参数
  5. [Java网络编程基础]UDP发送和接收数据
  6. js时间选择器_Vuestic Admin一款免费与美妙基于Vue.js开发的管理模板
  7. QQ解除外链限制,支持直接跳转淘宝抖音
  8. FFmpeg纯净版解码 av_parser_parse2
  9. 【李宏毅2020 ML/DL】P88-96 Meta Learning – MAML | Reptile
  10. 通俗易懂的Monte Carlo积分方法(一)
  11. linux-2.6.22.6 内核源代码包的文件目录介绍
  12. 布隆的盾能挡机器人_2020 年双十一有哪些扫地机器人值得买?
  13. 在iOS中获取UIView的所有层级结构 相关
  14. Java 获取系统字体
  15. 数学建模:层次分析法实例以及代码
  16. 《老路用得上的商学课》71-75学习笔记
  17. Vue中显示echarts北京公交路线
  18. Dockerfile的编写
  19. ORACLE 如何获取uid
  20. OSChina 元宵节乱弹 ——青龙偃月刀都实名了

热门文章

  1. 记关于DNS协议的一次学习(递归查询与迭代查询)
  2. linux 下竟有想大白菜软件,大白菜U盘做PE及CDLINUX镜像共存的启动盘.pdf
  3. Chrome 开发者工具 network 显示 Provisional headers are shown 的几种原因
  4. Lesson 17.11 案例一:SVHN街道实景门牌识别
  5. Codevs 1253 超级市场
  6. java数组= 0_JAVA数组
  7. 解决Windows 10环境下 Realtek声卡 台式机前面板插孔没有声音输出问题
  8. 计算机统计大数据库,统计数据库
  9. 计算机 国际顶尖级会议排名,计算机学科国际会议排名
  10. 彻底掌握Quartus——基础篇