pip3 install Pillow
pip3 install qrcode
import qrcode
text ="gisoracle我爱你呀" #input("输入文字或URL:") # 设置URL必须添加http://
img = qrcode.make(text)
img.save(r"d:\a.png") # 保存图片至本地目录,可以设定路径
img.show()
- 2. 正常生成二维码的步骤:
  1. 创建QRCode对象
  2. add_data()添加数据
  3. make_image()创建二维码(返回im类型的图片对象)
  4. 自动打开图片,im.show()
- 3. QRCode参数详细说明:
  • version: 一个整数,范围为1到40,表示二维码的大小(最小值是1,是个12×12的矩阵),如果想让程序自动生成,将值设置为 None 并使用 fit=True 参数即可。
  • error_correction: 二维码的纠错范围,可以选择4个常量:
    ··1. ERROR_CORRECT_L 7%以下的错误会被纠正
    ··2. ERROR_CORRECT_M (default) 15%以下的错误会被纠正
    ··3. ERROR_CORRECT_Q 25 %以下的错误会被纠正
    ··4. ERROR_CORRECT_H. 30%以下的错误会被纠正
  • boxsize: 每个点(方块)中的像素个数
  • border: 二维码距图像外围边框距离,默认为4,而且相关规定最小为4

三、额外添加

往往我们看到的二维码中间都有一张图片或者用户头像,如何才能生成这样一张二维码?

利用PIL库中image模块的paste函数
img.paste(path,where,mask=None)
其中,img为image对象;path为所添加图片;where为tuple,如:(x,y),表示图片所在二维码的横纵坐标

import qrcode

data = 'https://www.cnblogs.com/gisoracle/'
img_file = r'保存路径' # 实例化QRCode生成qr对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=4
)
# 传入数据
qr.add_data(data) qr.make(fit=True) # 生成二维码
img = qr.make_image() # 保存二维码
img.save(img_file)
# 展示二维码
img.show()
import qrcode
from PIL import Image
import matplotlib.pyplot as plt def getQRcode(data, file_name):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=5,
border=4,
) # 添加数据
qr.add_data(data)
# 填充数据
qr.make(fit=True)
# 生成图片
img = qr.make_image(fill_color="green", back_color="white") # 添加logo,打开logo照片
icon = Image.open("d:/ww.jpg")
# 获取图片的宽高
img_w, img_h = img.size
# 参数设置logo的大小
factor = 6
size_w = int(img_w / factor)
size_h = int(img_h / factor)
icon_w, icon_h = icon.size
if icon_w > size_w:
icon_w = size_w
if icon_h > size_h:
icon_h = size_h
# 重新设置logo的尺寸
icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
# 得到画图的x,y坐标,居中显示
w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
# 黏贴logo照
img.paste(icon, (w, h), mask=None)
# 终端显示图片
plt.imshow(img)
plt.show()
# 保存img
img.save(file_name)
return img if __name__ == '__main__':
getQRcode("群主我们爱你,群主一会就要给大家发红包,请准备!!!", 'my.png')

来自:https://www.jianshu.com/p/c0073c6aa544

======================================================

彩色的二维码:

from MyQR import myqr
version, level, qr_name = myqr.run(
words='I Love you', # 不支持中文,支持 0~9,a~z, A~Z 以及常见的常用英文标点符号和空格
version=2, # 版本,从 1至 40
level='H', # 纠错等级,范围是L、M、Q、H,从左到右依次升高
picture=r'd:\ww.jpg', # 文件要放在目录下
colorized=True, # True 为彩色,False 为黑白
contrast=1.0, # 对比度
brightness=1.0, # 亮度
save_name='w.png', # 命名随便都行,格式可以是 jpg,png,bmp,gif
save_dir="F:/kktemp/" # 路径要存在
)
=====================================
动态的
from MyQR import myqr
import os version, level, qr_name = myqr.run(
#words="https://www.baidu.com", # 可以是字符串,也可以是网址(前面要加http(s)://)
words=u"I Love you",
version=1, # 设置容错率为最高
level='H', # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
picture="d:/1.gif", # 将二维码和图片合成
colorized=True, # 彩色二维码
contrast=1.0, # 用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
brightness=1.0, # 用来调节图片的亮度,其余用法和取值同上
save_name="3.gif", # 保存文件的名字,格式可以是jpg,png,bmp,gif
save_dir=os.getcwd() # 控制位置
)

python 二维码的更多相关文章

  1. Python 二维码制作

    Python 二维码制作 先介绍python 二维码制作的第三方库 QRCode .MyQR QRCode    生成这个二维码只用三行 import qrcode img = qrcode.make ...

  2. Python 二维码解码

    二维码解析 Python中关于二维码解析的现成模块有很多,比较著名的就是Zbar以及ZXing.然而很不幸的是,官方的版本都是支持到python2.x,下面是在python2.x的例子: import ...

  3. python二维码操作:QRCode和MyQR入门

    1.QRCode QRCode最简单的使用 import qrcode qrcode.make("第一个二维码").get_image().show() 根据文本生成二维码并且直接 ...

  4. python二维码模块(qrcode)

    qrcode模块安装 运行命令行工具(cmd),使用pip安装工具分别安装qrcode. pip install qrcode 先来个简单的例子 import qrcode # 二维码内容 data ...

  5. Python 实现二维码生成和识别

    今天突然想给自己自己做个头像,然后还是二维码的形式,这样只要扫一扫就可以访问我的主页.然后就开始自己的苦逼之路... 其实实现二维码java,c#,C++等都可以实现:由于自己正在学python,所以 ...

  6. 二维码制作分享-Python

    分享一个简单快捷的二维码制作,Python实现. 1.安装准备 已安装的Python+Pycharm的计算机.本人win7+Python3.6+Pycharm 2.库包下载安装 Python二维码制作 ...

  7. Jenkins生成APK链接的二维码

    Window环境 1.下载安装Python如3.7.5版本,安装Python到电脑上如C:\Python37,将C:\Python37,C:\Python37\Scripts添加到Path环境变量中 ...

  8. Python 创建本地服务器环境生成二维码

    一. 需求 公司要做一个H5手机端适配页面,因技术问题所以H5是外包的,每次前端给我们源码,我们把源码传到服务器让其他人访问看是否存在bug,这个不是很麻烦吗?有人说,可以让前端在他们的服务器上先托管 ...

  9. Python生成二维码脚本

    简单的记录下二维码生成和解析的Python代码 依赖下面三个包: PIL(图像处理包,安装:pip install PIL) qrcode(二维码生成包,安装:pip install qrcode) ...

随机推荐

  1. Java 进阶面试问题必备

    面向对象编程的基本理念与核心设计思想 解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling). 继承(Inheritanc ...

  2. p6.BTC-挖矿难度

    挖矿就是不断调整nouce和header中其他可变字段,使得整个block header 的hash值小于等于target,target越小,挖矿难度越大. 出块时间设置为了10分钟,可以尽可能避免同 ...

  3. 微信小程序~获取位置信息

    微信小程序提供的getlocation来获取用户的定位,能够得到用户的经纬度信息 (注:getloaction需要用户授权scope.userLocation)结合map组件能够得到用户的详细定位 & ...

  4. 10分钟学会 linux awk命令

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  5. 兼容火狐,Chrome,IE6,IE7,IE8的HTML换行写法

    本文链接:https://java-er.com/blog/html-break-line-firefox-chrome/ 兼容火狐,Chrome,IE6,IE7,IE8的HTML换行写法1.任意数据 ...

  6. 什么情况下使用large training data会非常有效

    收集大量的数据可能比算法的优劣更重要 Banko和Brill在2001年做了一个研究,是关于在句子中对易混单词进行识别,画出了上图的右边的那个图,这个图显示了对于不同的算法,它们的表现相似,但是随着t ...

  7. Oracle中修改某个字段可以为空

    待修改字段假定为:shuifen 1.当该字段为空时,可直接修改: alter table reportqymx modify shuifen null; 2.当待修改字段不为空时:新增一列把要改变的 ...

  8. ASP.NET MVC 5 入门-2控制器、路由

    一.创建项目: 上起始页,选择新项目. 在中新的项目对话框中,右侧语言类别选择C# ,然后项目类型选择Web,然后选择ASP.NET Web 应用程序 (.NET Framework) 项目模板. 将 ...

  9. ORM框架三种映射在Springboot上的使用

    ORM(对象/关系映射)是数据库层非常重要的一部分,有三种常用的映射关系 1.多对一 tbl_clazz clazz{ id name description grade_id charge_id } ...

  10. SPA项目开发动态树、数据表格、分页功能

    SPA项目开发 1.修改左侧动态树 LeftNav.vue <template> <el-menu router :" class="el-menu-vertic ...