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的Django框架中创建模板库的方法
Jul 20 Python
django中瀑布流写法实例代码
Oct 14 Python
python多线程使用方法实例详解
Dec 30 Python
django2.2 和 PyMySQL版本兼容问题
Feb 17 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
使用OpenCV去除面积较小的连通域
Jul 05 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
python中的列表和元组区别分析
Dec 30 Python
Python3+Appium安装及Appium模拟微信登录方法详解
Feb 16 Python
Python中文纠错的简单实现
Jul 07 Python
Python中rapidjson参数校验实现
Jul 25 Python
一起来学习Python的元组和列表
Mar 13 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
一个数据采集类
2007/02/14 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
php中使用url传递数组的方法
2015/02/11 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
小程序hover-class点击态效果实现
2019/02/26 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Python字节单位转换实例
2019/12/05 Python
基于Python测试程序是否有错误
2020/05/16 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
keras打印loss对权重的导数方式
2020/06/10 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
Python实现区域填充的示例代码
2021/02/03 Python
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
给导游的表扬信
2014/01/10 职场文书
卫生系统先进事迹
2014/05/13 职场文书
2015年预备党员自我评价
2015/03/04 职场文书