分享Python文本生成二维码实例


Posted in Python onJanuary 06, 2016

本文实例分享了Python文本生成二维码的详细代码,供大家参考,具体内容如下

测试一:将文本生成白底黑字的二维码图片
测试二:将文本生成带logo的二维码图片

#coding:utf-8
'''
Python生成二维码 v1.0
主要将文本生成二维码图片
 
测试一:将文本生成白底黑字的二维码图片
测试二:将文本生成带logo的二维码图片
 
'''
 
__author__ = 'Xue'
 
import qrcode
from PIL import Image
import os
 
#生成二维码图片
def make_qr(str,save):
 qr=qrcode.QRCode(
  version=4, #生成二维码尺寸的大小 1-40 1:21*21(21+(n-1)*4)
  error_correction=qrcode.constants.ERROR_CORRECT_M, #L:7% M:15% Q:25% H:30%
  box_size=10, #每个格子的像素大小
  border=2, #边框的格子宽度大小
 )
 qr.add_data(str)
 qr.make(fit=True)
 
 img=qr.make_image()
 img.save(save)
 
 
#生成带logo的二维码图片
def make_logo_qr(str,logo,save):
 #参数配置
 qr=qrcode.QRCode(
  version=4,
  error_correction=qrcode.constants.ERROR_CORRECT_Q,
  box_size=8,
  border=2
 )
 #添加转换内容
 qr.add_data(str)
 #
 qr.make(fit=True)
 #生成二维码
 img=qr.make_image()
 #
 img=img.convert("RGBA")
 
 #添加logo
 if logo and os.path.exists(logo):
  icon=Image.open(logo)
  #获取二维码图片的大小
  img_w,img_h=img.size
 
  factor=4
  size_w=int(img_w/factor)
  size_h=int(img_h/factor)
 
  #logo图片的大小不能超过二维码图片的1/4
  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)
  
  #计算logo在二维码图中的位置
  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.save(save)
 
 
if __name__=='__main__':
 save_path='theqrcode.png' #生成后的保存文件
 logo='logo.jpg' #logo图片
 
 str=raw_input('请输入要生成二维码的文本内容:')
 
 #make_qr(str)
 
 make_logo_qr(str,logo,save_path)

那Python使用QRCode模块如何生成二维码?

1、简介
python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode 库。
2、简单用法

import qrcode 
img = qrcode.make('hello, qrcode')
img.save('test.png')

3、高级用法

import qrcode 
qr = qrcode.QRCode(   
  version=1,   
  error_correction=qrcode.constants.ERROR_CORRECT_L,   
  box_size=10,   
  border=4, 
) 
qr.add_data('hello, qrcode') 
qr.make(fit=True) 
img = qr.make_image()
img.save('123.png')

4、参数含义:

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,是相关标准规定的最小值)

希望本文所述对大家学习Python程序设计有所帮助。

Python 相关文章推荐
Python用GET方法上传文件
Mar 10 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
python 换位密码算法的实例详解
Jul 19 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
Python数据可视化:箱线图多种库画法
Nov 06 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Python描述符descriptor使用原理解析
Mar 21 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 #Python
使用Python神器对付12306变态验证码
Jan 05 #Python
Python聊天室实例程序分享
Jan 05 #Python
详解Python Socket网络编程
Jan 05 #Python
菜鸟使用python实现正则检测密码合法性
Jan 05 #Python
Python字符串特性及常用字符串方法的简单笔记
Jan 04 #Python
Python实现控制台进度条功能
Jan 04 #Python
You might like
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python遍历目录的4种方法实例介绍
2015/04/13 Python
Python脚本处理空格的方法
2016/08/08 Python
python+opencv实现动态物体识别
2018/01/09 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
python访问hdfs的操作
2020/06/06 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
python中xlrd模块的使用详解
2021/02/01 Python
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
JAVA代码查错题
2014/10/10 面试题
银行介绍信范文
2014/01/10 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
房屋买卖协议书
2014/04/10 职场文书
教师个人教学总结
2015/02/11 职场文书
功夫熊猫观后感
2015/06/10 职场文书
画展观后感
2015/06/17 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
一条慢SQL语句引发的改造之路
2022/03/16 MySQL
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers