分享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的迭代器和生成器使用实例
Jan 14 Python
python使用matplotlib绘制柱状图教程
Feb 08 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
python实现感知器算法(批处理)
Jan 18 Python
Python中list的交、并、差集获取方法示例
Aug 01 Python
python中删除某个元素的方法解析
Nov 05 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
基于Python中random.sample()的替代方案
May 23 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 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 CURL 内存泄露问题解决方法
2015/02/12 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
python中判断文件结束符的具体方法
2020/08/04 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
Python常遇到的错误和异常
2021/11/02 Python