Python实现将文本生成二维码的方法示例


Posted in Python onJuly 18, 2017

本文实例讲述了Python实现将文本生成二维码的方法。分享给大家供大家参考,具体如下:

#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 相关文章推荐
Python-基础-入门 简介
Aug 09 Python
Python中模拟enum枚举类型的5种方法分享
Nov 22 Python
Python中文件I/O高效操作处理的技巧分享
Feb 04 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
几种实用的pythonic语法实例代码
Feb 24 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
基于Python测试程序是否有错误
May 16 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
Python实战之实现康威生命游戏
Apr 26 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 #Python
Python使用plotly绘制数据图表的方法
Jul 18 #Python
python中日志logging模块的性能及多进程详解
Jul 18 #Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 #Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 #Python
python对DICOM图像的读取方法详解
Jul 17 #Python
Python实现excel转sqlite的方法
Jul 17 #Python
You might like
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
phpinfo的知识点总结
2019/10/10 PHP
php实现记事本案例
2020/10/20 PHP
使用js 设置url参数
2013/07/08 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
python框架django基础指南
2016/09/08 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
对python调用RPC接口的实例详解
2019/01/03 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
Python魔术方法专题
2020/06/19 Python
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
学校师德师风自我剖析材料
2014/09/29 职场文书
老乡聚会通知
2015/04/23 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript