使用Python生成二维码的完整指南
无边落木萧萧下,不如跟着可莉一起游~
可莉将这篇博客收录在了:《Python》
可莉推荐的优质博主首页:Kevin ’ s blog
本文将介绍如何使用Python中的qrcode
库来生成二维码。通过简单的代码示例和详细解释,读者将学习如何在Python中轻松生成自定义的二维码。
目录
1、安装qrcode库
2、生成简单的二维码
3、生成自定义样式的二维码
4、生成带有链接的二维码
5、可莉的小创作
1、安装qrcode
库
我们在Terminal中用如下指令进行库的安装:
pip install qrcode[pil]
2、生成简单的二维码
import qrcodeimg = qrcode.make('you are a pig.')
img.save('test.png')
在上方代码中首先导入qrcode,然后用qrcode.make来对二维码所含信息进行填充,最后用save来对生成的二维码进行命名,从而得到一个简单的二维码。
3、生成自定义样式的二维码
import qrcode
from PIL import Image# 定义要生成二维码的内容
data = "Hello, World!"# 创建QRCode对象
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4,
)# 将数据添加到QRCode对象中
qr.add_data(data)
qr.make(fit=True)# 生成QRCode图像
img = qr.make_image(fill_color="black", back_color="white")# 添加Logo到二维码
logo = Image.open("logo.png")
img.paste(logo, (50, 50))# 保存生成的二维码图像
img.save("custom_qrcode.png")# 显示生成的二维码图像
img.show()
在这个示例中,我们首先定义了要生成二维码的内容data
。然后创建了一个QRCode
对象,并设置了一些参数。接着,将数据添加到QRCode
对象中,并生成二维码图像。我们还加载了一个Logo图像,并将其粘贴到生成的二维码图像上。最后,保存了生成的自定义样式的二维码图像,并显示了生成的二维码图像。
下面我将代码进行分开进行逐个讲解。
# 创建QRCode对象
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4,
)
在这段代码中,我们创建了一个
QRCode
对象,并设置了一些参数来定义生成二维码的样式和属性。下面来解释一下这些参数的含义:
version=1
: 这个参数指定了生成的二维码的版本。版本号从1到40,表示二维码的大小和数据容量。较高的版本号意味着更大的二维码,可以容纳更多的数据。在这里,我们设置为1,表示生成一个较小的二维码。
error_correction=qrcode.constants.ERROR_CORRECT_H
: 这个参数指定了二维码的容错级别。容错级别决定了二维码在受损情况下的纠错能力。ERROR_CORRECT_H
表示高级别的容错,可以在一定程度上修复受损的二维码数据。
box_size=10
: 这个参数指定了二维码中每个小方块(模块)的像素大小。在生成的二维码图像中,每个数据点都映射为一个正方形的小模块,box_size
指定了这个小模块的大小。
border=4
: 这个参数指定了二维码图像周围的空白边框的大小,以保留一定的空间来避免二维码与其他元素重叠。border
表示边框的宽度,这里设置为4个小模块的宽度。
qr.make(fit=True)
在这段代码中,
qr.make(fit=True)
是调用QRCode
对象的make
方法来生成二维码图像的操作。让我解释一下fit=True
参数的含义:
fit=True
: 这个参数指定了在生成二维码图像时,是否自动调整二维码的大小以适应数据。当fit
参数设置为True
时,生成的二维码图像会根据包含的数据自动调整大小,以确保所有数据都能被正确编码到二维码中。通过设置
fit=True
参数,可以确保生成的二维码图像适合包含的数据,避免数据被截断或溢出。这样可以保证生成的二维码图像具有最佳的可读性和准确性。
4、生成带有链接的二维码
import qrcode# 定义要生成二维码的链接
link = "https://www.example.com"# 创建QRCode对象
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_Q,box_size=10,border=4,
)# 将链接添加到QRCode对象中
qr.add_data(link)
qr.make(fit=True)# 生成QRCode图像
img = qr.make_image(fill_color="black", back_color="white")# 保存生成的二维码图像
img.save("link_qrcode.png")# 显示生成的二维码图像
img.show()
在这个示例中,我们定义了要生成二维码的链接link
。然后创建了一个QRCode
对象,并设置了一些参数。接着,将链接添加到QRCode
对象中,并生成包含链接的二维码图像。最后,保存了生成的带有链接的二维码图像,并显示了生成的二维码图像。
5、可莉的小创作
可莉将一位优质的博主主页链接藏在了这个二维码里了,大家快去扫吧~
相关文章:

使用Python生成二维码的完整指南
无边落木萧萧下,不如跟着可莉一起游~ 可莉将这篇博客收录在了:《Python》 可莉推荐的优质博主首页:Kevin ’ s blog 本文将介绍如何使用Python中的qrcode库来生成二维码。通过简单的代码示例和详细解释,读者将学习如何在Python中轻…...

排序前言冒泡排序
目录 排序应用 常见的排序算法 BubbleSort冒泡排序 整体思路 图解分析 代码实现 每趟 写法1 写法2 代码NO1 代码NO2优化 时间复杂度 排序概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递…...

红队笔记Day3-->隧道上线不出网机器
昨天讲了通过代理的形式(端口转发)实现了上线不出网的机器,那么今天就来讲一下如何通过隧道上线不出网机器 目录 1.网络拓扑 2.开始做隧道?No!!! 3.icmp隧道 4.HTTP隧道 5.SSH隧道 1.什么…...
C 练习实例70-求字符串长度
题目:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度。 解答: #include <stdio.h> int length(char *s); int main() {int len;char str[20];printf("请输入字符串:\n");scan…...

HarmonyOS—@State装饰器:组件内状态
State装饰的变量,或称为状态变量,一旦变量拥有了状态属性,就和自定义组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变。 在状态变量相关装饰器中,State是最基础的,使变量拥有状态属性的装饰器&a…...

Linux系统——防火墙拓展及重点理解
目录 一、iptables 1.基本语法 2.四表五链——重点记忆 2.1四表 2.2五链 2.3总结 3.iptables选项示例 3.1 -Z 清空流量计数 3.2 -P 修改默认规则 3.3 -D 删除规则 3.4 -R 指定编号替换规则 5.白名单 6.通用匹配 7.示例 7.1添加回环网卡 7.2可以访问端口 7.3 主…...

阿里云短信验证码的两个坑
其它都参照官网即可,其中有两个坑需要注意: 1、除去官网pom引用的包之外,还需要引用以下包: <dependency><groupId>org.apache.httpcomponents.client5</groupId><artifactId>httpclient5</artifact…...
c入门第十五篇——学而时习之(阶段性总结)
古人说:“学而时习之。”古人又说:“温故而知新。”古人还说:“读书百遍,其义自见。” 总结一个道理那就是好书要反反复复的读,学习过的知识要时常去复习它,才有可能常读常新。 我:“师弟&…...

抽象的前端
问题背景:vue3,axios 直接导致问题:路由渲染失败 问题报错:Uncaught SyntaxError: The requested module /node_modules/.vite/deps/axios.js?v7bee3286 does not provide an export named post (at LoginIn.vue:16:9) 引入组…...
UPC训练赛二十/20240217
A:无穷力量 题目描述 2022年重庆突发山火让世界看到了中国一个又一个的感人事迹:战士们第一时间奔赴火场,志愿者们自发组成团队,为救火提供一切的可能的服务,人们自发输送物资,有的志愿者甚至几天几夜没有睡觉。每个…...

【51单片机】LCD1602(江科大)
1.LCD1602介绍 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符 显示容量:162个字符,每个字符为5*7点阵 2.引脚及应用电路 3.内部结构框图 屏幕: 字模库:类似于数码管的数…...
conda与pip的常用命令
conda的常用命令 1.查看conda版本 $ conda --version conda 23.11.02.查看conda的配置信息 $ conda infoactive environment : baseactive env location : /home/myPc/miniconda3shell level : 1user config file : /home/myPc/.condarcpopulated config files : conda vers…...
你知道什么是物联网MQTT么?
目录 你知道什么是物联网MQTT么?MQTT的基本概念MQTT的工作原理MQTT的应用场景MQTT的实例案例智能家居场景工业监控场景 你知道什么是物联网MQTT么? MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式…...
P8 pair vector
pair是一个模板类,用于表示一对值的组合,用<utility>中 pair模板有两个模板参数,t1 t2,分别表示第一个值和第二个值类型 pair类有两个成员变量,frist和 cond,分别表示第一个值与第二个值 还有一些成员函数和…...

奇异值分解(SVD)的应用——图像压缩
SVD方法是模型降阶的一类重要方法,本征正交分解(POD)和平衡截断(BT)都属于SVD类方法。 要想深入了解模型降阶技术,我们可以先从SVD的应用入手,做一个直观的了解。 1. SVD的定义和分类 我们想寻找…...
RTDETR改进系列指南
基于Ultralytics的RT-DETR改进项目.(89.9) 为了感谢各位对RTDETR项目的支持,本项目的赠品是yolov5-PAGCP通道剪枝算法.具体使用教程 自带的一些文件说明 train.py 训练模型的脚本main_profile.py 输出模型和模型每一层的参数,计算量的脚本(rtdetr-l和rtdetr-x因为thop库的问…...
类和结构体的区别
类(class)和结构体(struct)是面向对象编程(Object-Oriented Programming,OOP)中常见的两种数据类型,它们在不同的编程语言中有一些共同之处,但也存在一些区别。以下是它们…...
利用Excel模拟投币试验
文章目录 试验前对Excel要进行的设置试验步骤计算正面频率结果图试验前对Excel要进行的设置 进入Excel依次点击如下选项,最后将分析工具库勾选 #mermaid-svg-bIvrxZGI9buCMW6U {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#m…...

WebService接口测试
WebService的理解 WebService就是Web服务的意思,对应的应用层协议为SOAP(相当于HTTP协议),可理解为远程调用技术。 特点: 客户端发送的请求主体内容(请求报文)的格式为XML格式 接口返回的响…...

语音唤醒——
文章目录 配置主代码 参考文档:https://picovoice.ai/docs/quick-start/porcupine-python/ 配置 pip install pvporcupine主代码 ACCESS_KEY:需要将该参数填入即可 # # Copyright 2018-2023 Picovoice Inc. # # You may not use this file except in …...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...