python-qrcode是个用来生成二维码图片的第三方模块,主要依赖的是 PIL 模块和 qrcode 库。(PIL模块只支持python2.7及以下版本,python3之后无法使用,官方推荐python3.x使用pillow代替PIL模块)

1.安装相关环境(以python2.7为例)

首先,我们要安装三个模块,qrcode,image,PIL。

pip install qrcode

pip install image

PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。

在Debian/Ubuntu Linux下直接通过apt安装:

$ sudo apt-get install python-imaging

Mac和其他版本的Linux可以直接使用easy_install或pip安装,安装前需要把编译环境装好:

$ sudo easy_install PIL

如果安装失败,根据提示先把缺失的包(比如openjpeg)装上。

Windows平台就去PIL官方网站下载exe安装包。

2.简单用法

import qrcode

img = qrcode.make('simpleqrcode')

img.save('D:/simpleqrcode.jpg')

#img.show()

3.高级用法

import qrcode

qr=qrcode.QRCode(version = 2,error_correction = qrcode.constants.ERROR_CORRECT_L,box_size=10,border=10,)

qr.add_data('http://www.cnblogs.com/sfnz/')

qr.make(fit=True)

img = qr.make_image()

img.show()

#img.save('D:/test.jpg')

4.带有logo图案的二维码

from PIL import Image

import qrcode

qr = qrcode.QRCode(version=5,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=8,border=4)

qr.add_data("http://www.cnblogs.com/sfnz/")

qr.make(fit=True)

img = qr.make_image()

img = img.convert("RGBA")

#logo="D:/favicon.jpg"

icon = Image.open("D:/favicon.jpg")

img_w,img_h = img.size

factor = 4

size_w = int(img_w / factor)

size_h = int(img_h / factor)

icon_w,icon_h = icon.size

if icon_w >size_w:

icon_w = size_w

if icon_h > size_h:

icon_h = size_h

icon = icon.resize((icon_w,icon_h),Image.ANTIALIAS)

w = int((img_w - icon_w)/2)

h = int((img_h - icon_h)/2)

icon = icon.convert("RGBA")

img.paste(icon,(w,h),icon)

#img.show()

img.save('D:/createlogo.jpg')

参数含义:

version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。

error_correction:控制二维码的错误纠正功能。可取值下列4个常量。

ERROR_CORRECT_L:大约7%或更少的错误能被纠正。

ERROR_CORRECT_M(默认):大约15%或更少的错误能被纠正。

ROR_CORRECT_H:大约30%或更少的错误能被纠正。

box_size:控制二维码中每个小格子包含的像素数。

border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)。

img.save:是将生成二维码图片保存到哪里。

一些参考文档:

http://www.xuchanggang.cn/archives/1069.html

http://www.cnblogs.com/linjiqin/p/4140455.html

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00140767171357714f87a053a824ffd811d98a83b58ec13000

http://pythonware.com/products/pil/

http://effbot.org/imagingbook/

用python制作二维码_使用python制作二维码相关推荐

  1. python myqr制作二维码生成器_用Python生成动态二维码,只要5行代码,拥有你的个性二维码!...

    原标题:用Python生成动态二维码,只要5行代码,拥有你的个性二维码! 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. P ...

  2. python api文档生成二维码_使用Python第三方库生成二维码

    本文主要介绍两个可用于生成二维码的Python第三方库:MyQR和qrcode. MyQR的使用: 安装: pip install MyQR 导入: from MyQR import myqr imp ...

  3. python随机生成二维列表_对python产生随机的二维数组实例详解

    对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...

  4. python画蜡烛致敬烈士_用matplotlib制作的比较满意的蜡烛图

    用matplotlib制作的比较满意的蜡烛图 2D图形制作包, 功能强大, 习练了很久, 终于搞定了一个比较满意的脚本. 特点: 使用方面要非常简单 绘制出来的图要非常的满意, 具有如下的特点 时间和 ...

  5. 跳一跳python源码_使用Python实现跳一跳自动跳跃功能

    使用Python实现跳一跳自动跳跃功能 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  使用Python实现跳一跳自动跳跃功能.txt ] (友情提示:右键点上行 ...

  6. python内存管理和释放_《python解释器源码剖析》第17章--python的内存管理与垃圾回收...

    17.0 序 内存管理,对于python这样的动态语言是至关重要的一部分,它在很大程度上决定了python的执行效率,因为在python的运行中会创建和销毁大量的对象,这些都设计内存的管理.同理pyt ...

  7. python大数据运维库_大数据集群运维(10)Pycharm下安装模块

    方法一:使用Pycharm的终端安装 一.网络爬虫 1.安装requests包 作用:简洁且简单的处理HTTP请求的第三方库 pip install requests 2.安装scrapy包 作用:快 ...

  8. python绝对值函数偏码_绝对值python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 试图建立关分拣python字典,我将如何去打印基于该值的绝对值排序顺序pytho ...

  9. python多维数据分析_使用python进行数据分析

    Life is short, I use python! 1 python中常用的数据分析包 2 python:一维数据分析 2.1 用numpy包进行一维数据分析 import numpy as n ...

  10. python手工打码_使用Python + Selenium破解滑块验证码

    在前面一篇博客,介绍了 Selenium 的基本用法和爬虫开发过程中经常使用的一些小技巧,利用这些写出一个浏览器爬虫已经完全没有问题了.看了前一篇博客,可能有人会有疑惑,浏览器爬虫的优势感觉并不比传统 ...

最新文章

  1. 大佬是怎么优雅实现矩阵乘法的?
  2. linux怎么创建新用户名和密码错误,linux重命名root后,使用su命令切换新用户时,提示密码错误...
  3. 关于用 ABAP 代码手动触发 SAP CRM organization Model 自动决定的研究
  4. 基于社交心理过程满足的LBS社交应用研究
  5. bundle文件解压_通过sourcemap解压缩webpack 实战
  6. Kotlin学习笔记 第二章 类与对象 第十四 十五节 委托 委托属性
  7. java moneyutils_java中每月等额与先息后本计算
  8. 十行代码实现十亿图片检索,我们把它开源了
  9. k_means算法+python实现
  10. 9款很棒的网页绘制图表JavaScript框架脚本
  11. windows系统下帧率获取工具--fraps
  12. magic API构建和基础实现
  13. 美丽中国 纪录片 高频词 GRE 托福词汇
  14. GitHub Actions 快速入门
  15. 比如像我这种人,就不适合恋爱
  16. U盘文件突然不见却占内存 解决方案
  17. PL2303在ARM Linux下驱动的问题及解决方法
  18. jqGrid API 及用法
  19. 如何用“底层逻辑“看透世界的底牌?| 刘润最新演讲-学习总结
  20. WebGL实时视频(6) Unity里面显示视频

热门文章

  1. ORA-02287:此处不允许序号
  2. 【周赛-简单】5495. 圆形赛道上经过次数最多的扇区
  3. C#计算一个月有多少天
  4. 下载Windows ARM版本记录
  5. 人工智能基础——知识的概念
  6. 格式化输出编码问题!
  7. JAVA常用类之日期处理
  8. Node.js 在微医的应用场景及实践
  9. 现代控制理论公式大赏
  10. iso-8859-1表示中文汉字