分享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编写web API的教程
Apr 30 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
基于MTCNN/TensorFlow实现人脸检测
May 24 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
python SVD压缩图像的实现代码
Nov 05 Python
Python numpy线性代数用法实例解析
Nov 15 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 Python
利用Python函数实现一个万历表完整示例
Jan 23 Python
python os.listdir()乱码解决方案
Jan 31 Python
python实现学生信息管理系统(面向对象)
Jun 05 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
收音机指标测试方法及仪器
2021/03/01 无线电
PHP下MAIL的另一解决方案
2006/10/09 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
初识javascript 文档碎片
2010/07/13 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
深入理解Python中各种方法的运作原理
2015/06/15 Python
python分割列表(list)的方法示例
2017/05/07 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
python定向爬取淘宝商品价格
2018/02/27 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
详解Python sys.argv使用方法
2019/05/10 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
python3正则模块re的使用方法详解
2020/02/11 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
艺术专业大学生自我评价
2013/09/22 职场文书
机电专业个人自荐信格式模板
2013/09/23 职场文书
门诊挂号室室长岗位职责
2013/11/27 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
社区敬老月活动总结
2015/05/07 职场文书
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android