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使用心得之获得github代码库列表
Jun 25 Python
python字典键值对的添加和遍历方法
Sep 11 Python
Python科学画图代码分享
Nov 29 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
python滑块验证码的破解实现
Nov 10 Python
python快速排序的实现及运行时间比较
Nov 22 Python
使用pyqt 实现重复打开多个相同界面
Dec 13 Python
Python流程控制语句的深入讲解
Jun 15 Python
python Cartopy的基础使用详解
Nov 01 Python
用python-webdriver实现自动填表的示例代码
Jan 13 Python
pandas 按日期范围筛选数据的实现
Feb 20 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 explode()函数用法、切分字符串
2012/10/03 PHP
php程序内部post数据的方法
2015/03/31 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python Mysql自动备份脚本
2008/07/14 Python
Python模块学习 filecmp 文件比较
2012/08/27 Python
python局域网ip扫描示例分享
2014/04/03 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
python中如何打包用户自定义模块
2020/09/23 Python
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
会计找工作求职信范文
2013/12/09 职场文书
机械专业应届生求职信
2013/12/12 职场文书
法律进学校实施方案
2014/03/15 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP
方法汇总:Python 安装第三方库常用
2022/04/26 Python