python代码实现生成二维码

简介: python代码实现生成不同的二维码

二维码结构:

在这里插入图片描述

从图中我们可以看出二维码结构整体划分为功能图形和编码区两大部分,功能图形又细分为:空白区、位置探测图形、位置探测图形分隔符、定位图形、校正图形,而编码区细分为:格式信息、版本信息、数据和纠错码字,来简单了解一下每一部分的功能:

空白区:留白,不需要做任何处理

位置探测图形:协助扫描软件定位二维码

位置探测图形分隔符:区分功能图形和编码区

定位图形:指示标识密度和确定坐标系

校正图形:校正图形的数量和位置

格式信息:存放格式化数据的信息

版本信息:二维码的规格,二维码符号共有 40 种规格的矩阵
数据和纠错码字:实际保存的二维码信息和纠错码字(用于修正二维码损坏带来的错误)

安装需要的库:
二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,而生成一个二维码也非常简单,在Python中我们可以通过qrcode库或者myqr库生成二维码,而生成一个二维码我们只需要2行代码,我们先安装qrcode库和myqr库,我这里是在虚拟环境里面直接安装:

pip install qrcode

pip install myqr

在这里插入图片描述

我这个是已经安装好了的

生成一个二维码比较简单,下面我们就介绍几种不一样的方法来生成二维码吧~

第一种:通过输入文字

import qrcode,datetime

text = input('输入文字:')
img =qrcode.make(text)
# 定义图片名称以时间命名
nd = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
#保存图片至本地目录,可以设定路径
img.save(u'E:/'+ nd +'.png')
#展示图片
# img.show()

第二种:输入网站地址

如果能在二维码中添加个性化头像则更有趣。qrcode也支持该功能。

首先我们使用QRCode类,它提供了更多控制选项。

其中version的范围[1,40],控制生成二维码的大小;box_size表示二维码中每个表格有多少像素;border控制边框厚度等。

import qrcode

qr = qrcode.QRCode(

    version=2,

    error_correction=qrcode.constants.ERROR_CORRECT_L,

    box_size=10,

    border=1
    )#设置二维码的大小

qr.add_data("xxxxxxx")  #这里是填网站

qr.make(fit=True)

img = qr.make_image()

img.save("二维码.png")

记得修改其中的网站地址

第三种: 直接在cmd里面用

1、cmd里面彩色图片:myqr -p 图片本地地址 网址 -c
2、cmd里面动态图片:myqr 网址 -c -p 图片本地地址

在这里插入图片描述
像这样子就搞好啦~

第四种: 添加动态图片在中间

##可以自带logo!!!!不过只能放网址地址

from PIL import Image
import qrcode

qr = qrcode.QRCode(version=5,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=8,border=4)
qr.add_data("XXXXXXXX")   #这里是填网站
qr.make(fit=True)


img = qr.make_image()
img = img.convert("RGBA")

#logo="D:/favicon.jpg"
icon = Image.open("123.gif")

img_w,img_h = img.size
factor = 4
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
icon = icon.resize((icon_w,icon_h),Image.ANTIALIAS)

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.show()
img.save('123.gif')

记得修改其中的网站地址

第五种: 改变二维码颜色(花里胡哨)

import qrcode
# 实例化二维码生成类
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
# 设置二维码数据
data = "xxxxxxx"  #这里填你想要的网站
qr.add_data(data=data)

# 启用二维码颜色设置
qr.make(fit=True)
img = qr.make_image(fill_color="green", back_color="white")

# 显示二维码
img.show()

fill_color后面接你想要的颜色

第六种: 直接调背景图片

from MyQR import myqr
import os

i,j,k=myqr.run(
    words="XXXXXXXXX",       #二维码文本内容
    # version=1,          #容错率
    # level='H',          #纠错,L,M,Q,H
    picture="5.jpg",       #背景图片
    colorized=True,        #图片对比度
    # contrast=1.0,           #图片亮度
    save_name="55.jpg"      #图片名字
    # save_dir=os.getcwd()    #保存路径
)
print(i,j,k)

可以随便调二维码文本内容

总结:


from myqr import myqr

#myqr也可以用来生成二维码,但是它和qrcode相比最大的特点就是它可以嵌入图片当背景。

 '''
# 主要用到以下几个参数
# words:文本,可以是一个链接,或者你想说的话(不支持中文,很不友好)
# picture:你用到的图片,作为背景,不然只是一个光秃秃的二维码
# colorsize:true,表示生成彩图
# save_name:表示生成的二维码的名字
'''

myqr.run(words="XXXXXXXXXX",
     picture="xxx.jpg",
     colorized=true,
     save_name="xxxx.png")
import qrcode
 
"""
# 主要用到以下几个参数
version: 二维码的格子大小,可以是1到40。值越大,格子越大,一般不超过10,选择3比较合适
error_correction: 二维码错误容许率,默认为qrcode.constants.error_correct_m,容许小于 15% 的错误率
         此外还有qrcode.constants.error_correct_l: 容许小于 7% 的错误率
         qrcode.constants.ror_correct_h: 容许小于 30% 的错误率
box_size: 二维码每个小格子包含的像素数量
border: 二维码到图片边框的小格子数,默认值为 4        
"""
qr = qrcode.qrcode() # 事实上里面的参数我们可以都不指定,默认会选择一个比较合适的参数
 
# 调用add_data,指定url。
qr.add_data("xxxxxxxxx")
# 生成二维码图像,颜色为蓝色,背景色为粉色
img = qr.make_image(fill_color='blue', back_color='pink')
# 显示图像,这个会打开一个临时文件
img.show()
# 此外,我们还可以保存到硬盘上
img.save("1.jpg")
 
# 事实上,这个img实际上是通过pil模块得到的,可以理解为里面image对象
# 如果你熟悉pil模块的话,那么你应该知道可以将里面image对象保存成图片对应的字节流
from io import bytesio
buf = bytesio()
img.save(buf) # 将字节保存到buf里面
with open("2.jpg", "wb") as f:
  f.write(buf.getvalue()) # 和直接保存为1.jpg是一样的

MyQR 和qrcode库是实现python生成二维码基本的两个库,python中虽然有各种第三方库提供极大的方便,但要想将第三方库提供的能力完全使用出来,需要我们去了解它们提供的api并实践。

小编这里只是简单的使用qrcode和MyQR 生成二维码的几种使用方法,更强大的功能还需要你们继续去探究探究

相关文章
|
3月前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
68 6
|
4月前
|
存储 缓存 测试技术
Python中的装饰器:功能增强与代码复用的利器
在Python编程中,装饰器是一种强大而灵活的工具,它允许开发者以简洁优雅的方式增强函数或方法的功能。本文将深入探讨装饰器的定义、工作原理、应用场景以及如何自定义装饰器。通过实例演示,我们将展示装饰器如何在不修改原有代码的基础上添加新的行为,从而提高代码的可读性、可维护性和复用性。此外,我们还将讨论装饰器在实际应用中的一些最佳实践和潜在陷阱。
|
16天前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
17天前
|
API 开发工具 Python
【Azure Developer】编写Python SDK代码实现从China Azure中VM Disk中创建磁盘快照Snapshot
本文介绍如何使用Python SDK为中国区微软云(China Azure)中的虚拟机磁盘创建快照。通过Azure Python SDK的Snapshot Class,指定`location`和`creation_data`参数,使用`Copy`选项从现有磁盘创建快照。代码示例展示了如何配置Default Azure Credential,并设置特定于中国区Azure的`base_url`和`credential_scopes`。参考资料包括官方文档和相关API说明。
|
2月前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
86 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
3月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
89 33
|
4月前
|
人工智能 数据挖掘 Python
Python编程基础:从零开始的代码旅程
【10月更文挑战第41天】在这篇文章中,我们将一起探索Python编程的世界。无论你是编程新手还是希望复习基础知识,本文都将是你的理想之选。我们将从最基础的语法讲起,逐步深入到更复杂的主题。文章将通过实例和练习,让你在实践中学习和理解Python编程。让我们一起开启这段代码之旅吧!
|
3月前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
61 10
|
3月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
127 8
|
3月前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
77 11

热门文章

最新文章