分享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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
Python编写电话薄实现增删改查功能
May 07 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
Nov 29 Python
django中静态文件配置static的方法
May 20 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
python绘制漏斗图步骤详解
Mar 04 Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 Python
Python根据服务获取端口号的方法
Sep 25 Python
python如何从键盘获取输入实例
Jun 18 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
Python 匹配文本并在其上一行追加文本
May 11 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
Apache设置虚拟WEB
2006/10/09 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
跟老齐学Python之list和str比较
2014/09/20 Python
Python中IPYTHON入门实例
2015/05/11 Python
基于python socketserver框架全面解析
2017/09/21 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
结婚喜宴家长答谢词
2014/01/15 职场文书
团队拓展活动总结
2014/08/27 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
python实现监听键盘
2021/04/26 Python
Python中的datetime包与time包包和模块详情
2022/02/28 Python