Python3使用qrcode生成二维码教程

一、安装依赖库

pip install qrcode pillow image

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

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

二、简单用法

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

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

比如微信等扫以下二维码就是得到“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")

生成二维码如下:

三、高级用法

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

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

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

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

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

(不太确定是不是都对,可直接查看官方说明:https://github.com/lincolnloop/python-qrcode#advanced-usage

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()

生成二维码如下:

参考:

https://github.com/lincolnloop/python-qrcode

https://www.cnblogs.com/sfnz/p/5457862.html

https://baijiahao.baidu.com/s?id=1586194723484285133&wfr=spider&for=pc

原文地址:https://www.cnblogs.com/lsdb/p/9728621.html

时间: 2024-08-29 20:23:43

Python3使用qrcode生成二维码教程的相关文章

Pyqt+QRcode 生成二维码

python生成二维码是件很简单的事,使用第三方库Python QRCode就可生成二维码,我用Pyqt给QRcode打个壳 一.python-qrcode介绍 python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode 库. PIL下载地址: https://pypi.python.org/pypi/PIL/1.1.6         或 http://www.pythonware.com/products/pil/ qrcode下载地址: https:

asp.net(C#)利用QRCode生成二维码(续)-在二维码图片中心加Logo或图像 .

<%@ WebHandler Language="C#" Class="GetQRCode" %> using System; using System.Web; using ThoughtWorks.QRCode.Codec; using ThoughtWorks.QRCode.Codec.Data; using ThoughtWorks.QRCode.Codec.Util; using System.IO; using System.Text; us

C# 利用QRCode生成二维码图片

引用LYBwwp的博文http://blog.csdn.net/lybwwp/article/details/18444369 网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了一个项目后,简单的整理了一下. 组件下载地址:http://download.csdn.net/detail/lybwwp/6861821 下载文件包包含ThoughtWo

Qrcode生成二维码的参数总结 及最小尺寸的测试

Qrcode生成二维码,做过很多实验,探索最小规格的二维码到底是多少尺寸,和最高规格的二维码到底是多大尺寸.现在我总结总结: 有两种思路: 1.生成规格高的二维码,然后压缩到自己想要的尺寸的二维码.这种:压缩算法不好的时候会很坑爹. 2.根据调整的参数生成原图,这种图是比较清晰的,打印出来都可以很好的被识别. 先说说第二种吧:根据测试, 1.不设置任何东西时:根据测试 最小的二维码尺寸是45--47:宽高(对于1---14个字符), 第二梯度:54-56:宽高(对于15--26字符) 第三梯度:

python_使用qrcode生成二维码

1.功能 使用qrcode生成二维码 2.代码 #生成二维码: import qrcode #根据url生成二维码 def qrcodeWithUrl(url): img = qrcode.make(url) savePath = "1.png" img.save(savePath) #根据输入的文字生成二维码 def qrcodeWithText(text): img = qrcode.make(text) savePath = "2.png" img.save(

使用jquery.qrcode生成二维码实现微信分享功能

前言: 最近有个这样的需求,在pc端的商品详情页增加分享功能. 微博分享.QQ好友分享.QQ空间分享这些都很常见.但是微信分享我还没有手动写过(以前改过). 最终效果如下图: 解决方案:使用jquery.qrcode插件生成二维码 jquery.qrcode cdn地址 参见: https://www.bootcdn.cn/jquery.qrcode/ 1.加载 jQuery 和 jquery.qrcode.js: <script src="https://cdn.bootcss.com/

C# winform通过ThoughtWorks.QRCode生成二维码解码可以添加logo

首先要下载ThoughtWorks.QRCode.dll文件,添加引用. ThoughtWorks.QRCode.dll下载,点击下载 界面如下: 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Win

ThoughtWorks.QRCode生成二维码

首先引用需要的dll,此处使用的是ThoughtWorks.QRCode.dll,网上可以找到对应的,此处也有一份,点击下载 http://files.cnblogs.com/files/ives/ThoughtWorks.QRCode.zip 接下来添加引用,不明白的网上文章很多. 关键代码如下 Bitmap bt; string enCodeString = "http://sheyouyun.com"; QRCodeEncoder qrCodeEncoder = new QRCo

使用QRCode生成二维码

官网网址:http://code.ciaoca.com/javascript/qrcode/ 简介: QRCode.js是一个专门用于生成二维码的javascript库,主要是通过获取 DOM 的标签,再通过H5Canvas绘制而成,不依赖任何库(包括jquery),在官网上有对其详细的介绍,建议参考官网! 使用: 使用的时候分两种情况,一种是简单使用方式,生成二维码的大小包括其他一些东西由其默认,另一种是自定义各个参数 基本使用: New QRCode(document.getElemetBy