分享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基础教程之基本数据类型和变量声明介绍
Aug 29 Python
python实现DES加密解密方法实例详解
Jun 30 Python
python实现报表自动化详解
Nov 16 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
python实现车牌识别的示例代码
Aug 05 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
python批量处理txt文件的实例代码
Jan 13 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 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文件上传你必须知道的几点
2015/10/20 PHP
thinkPHP查询方式小结
2016/01/09 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
node.js基础知识小结
2018/02/26 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
用Python配平化学方程式的方法
2019/07/20 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
小学门卫岗位职责
2013/12/17 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL
基于Python实现股票收益率分析
2022/04/02 Python