用python生成带图片的二维码(python实例二十二)

news2024/9/22 8:33:31

目录

1.认识Python

2.环境与工具

2.1 python环境

2.2 Visual Studio Code编译

3.带图片的二维码

3.1 代码构思

3.2 代码实例

 3.3 运行结果

4.总结


1.认识Python

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字或标点符号,它具有比其他语言更有特色的语法结构。

2.环境与工具

2.1 python环境

在Windows上使用命令行窗口查看所安装的python版本

python --version

2.2 Visual Studio Code编译

Visual Studio Code是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和Git 版本控制系统。

3.带图片的二维码

3.1 代码构思

通过调用qrcode库和pillow库,生成二维码图片,然后通过定义背景图和二维码的位置进而生成一个有图片的二维码。

3.2 代码实例

from PIL import Image
import qrcode

# 将一张图片覆盖到另一张图片上
def img_paste(origin_img, paste_img, scale):
    # 获取原始图片的宽和高
    origin_img_w, origin_img_h = origin_img.size
    
    # 计算缩放后的图片宽和高
    new_width = int(origin_img_w / scale)
    new_height = int(origin_img_h / scale)
    
    # 获取要粘贴图片的宽和高
    paste_img_w, paste_img_h = paste_img.size
    
    # 如果粘贴图片的宽或高大于缩放后的宽或高,则进行缩放
    if paste_img_w > new_width or paste_img_h > new_height:
        paste_img = paste_img.resize((new_width, new_height), Image.Resampling.LANCZOS)
        paste_img_w, paste_img_h = paste_img.size
    
    # 计算居中位置
    point_x = (origin_img_w - paste_img_w) // 2
    point_y = (origin_img_h - paste_img_h) // 2
    
    # 将粘贴图片粘贴到原始图片上
    origin_img.paste(paste_img, (point_x, point_y))
    return origin_img

# 生成一个绿色的二维码
def get_qrcode_obj(data):
    qr_obj = qrcode.QRCode(
        version=6,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=2,
    )
    # 给二维码设置信息
    qr_obj.add_data(data)
    qr_obj.make(fit=True)
    # 生成二维码,前景绿色,背景白色
    qr_img = qr_obj.make_image(fill_color="green", back_color="white")
    return qr_img

# 主函数
if __name__ == '__main__':
    qr_img = get_qrcode_obj("学习python,深入机器学习!")
    # 将二维码转换成RGB格式
    qr_img = qr_img.convert("RGB")
    
    # 打开背景图片
    bg_img = Image.open("flower.png")                #添加自己的背景图片
    # 将读取的图片转换成RGB格式
    bg_img = bg_img.convert("RGB")
    
    # 将图片覆盖在二维码中间
    qr_result_img = img_paste(qr_img, bg_img, 6)
    
    # 显示图片
    qr_result_img.show()
    #保存图片
    qr_result_img.save("qrcode_with_flower.png")

 3.3 运行结果

建议使用可以扫描二维码的浏览器进行扫描,我这个二维码扫描出来的结果是程序中主函数下的"学习python,深入机器学习!"这句话。

4.总结

用python编写代码生成一个可以扫描的二维码,你也试试吧。

当然也可以用python编写程序进行二维码扫描(下期告诉你怎么编写) 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1916033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题~abc356(对于一串连续数字 找规律,开数值桶算贡献)

添加链接描述 题意:对于给定的n,m 。计算0~n 每一个数和m & 之后,得到的数 的二进制中 1的个数的和。 一位一位的算。最多是60位。 我们只需要计算 在 1-n这些数上,有多少个数 第i位 为1. 因为是连续的自然数,每一位上1 的…

32 华三vlan案例+STP

32 华三vlan案例STP 1 开启STP 显示根桥信息 查看stp中的接口角色 查看设备的根桥ID 最小的值是根网桥 原则一 网络初始化时,网络中所有的STP设备都认为自己是“根桥”,根桥ID为自身的设备ID。通过交换BPDU,设备之间比较根桥ID,网…

品牌策划必读:9本改变游戏规则的营销经典

作为深耕品牌十余年的策划人,这些年自学啃下的书不计其数。 这里特意挑选了几本知名度不高但是却非常有用的“遗珠”优质品牌策划书籍分享出来。 如果你是一位初步了解品牌的人,这些书籍既包含了品牌理论基础,也有实用的实践指导。 这些书…

【区块链 + 智慧政务】省级一体化区块链平台 | FISCO BCOS应用案例

在加强数字政府建设的大背景下,科大讯飞广泛应用数字技术于政府管理服务,推动政府数字化、智能化运行。同时, 统筹推进业务、数据和技术的融合,提升跨地域、跨层级、跨部门和跨业务的协同管理和服务水平。 当前政务信息化建设中&…

Apache配置与应用(企业网站架构部署与优化)

本章结构 如果要修改以上文件中的内容,想要生效,需要在主配置文件中能够扫描到这个默认文件的修改: 文件在: Apache 连接保持 Apache 的访问控制 针对IP地址的限制缺陷是不可预知性,需要事先直到对方的IP才能进行基于…

VIM模式之间的切换

命令行界面下,常用的文本编辑器是 VI / VIM(VI增强版),VI 是 Linux 最通用的文本编辑器,VIM相较于VI,提供了代码高亮等功能,两者用法完全兼容; 1. 进入 VIM 工作界面 vim 文件名 2. 进入编辑模式 三种方…

ZFT9-7VE8043-Z同期脉冲发送装置100V JOSEF约瑟 柜内安装

ZFT9(PIG)同期脉冲发送装置 系列型号 ZFT9(PIG) 7VE8033同期脉冲发送装置; ZFT9(PIG) 7VE8043同期脉冲发送装置; ZFT9 7VE8033同期脉冲发送装置; ZFT9 7VE8043同期脉冲发送装置; 用途: ZFT9同期脉冲发送装置用于船舶的三相系统,根据发电机和电力系…

Ceph资源池pool管理

目录 1.Ceph Pool管理命令 1.1 创建 Pool 资源池 1.2 查看集群 Pool 信息 1.3 查看资源池副本、PG 和 PGP的数量 1.4 修改 Pool 副本、PG 和 PGP数量 1.5 删除 Pool 资源池 2.一个pool资源池应该包含多少PG数? 完成了 Ceph 集群的部署,但是我们如…

从零开学C++:类和对象(上)

引言:在学习了C的入门级知识之后,现在就让我们一起进入类和对象的学习吧,该知识点我将分为上,中,下三个部分对其进行讲解。 更多有关C语言和数据结构的知识详解可前往个人主页:计信猫 目录 一,类…

【RHCE】NFS 实验

主服务器 下载nfs-utils软件包: 1.如果停⽌该服务,启动并启⽤该服务: systemctl enable - now rpcbind 2.要启动 NFS 服务器,并使其在引导时⾃动启动:systemctl enable - now nfs- server 3.配置防火墙,开…

RAG应用的典型工作流程

下面是RAG应用的典型工作流程: 具体步骤如下: 输入: 是指LLM系统需要回答的问题。如果不使用RAG,问题直接由LLM回答。 索引: 使用RAG时,会先将相关文档分块,为这些块生成嵌入向量,并…

prometheus回顾(2)--如何使用Grafana对接Prometheus数据源的详细过程,清晰易懂。

文章目录 Grafana简介什么是GrafanaGrafana 能做什么?什么时候我们会用到Grafana?Prometheus有图形化展示,为什么我们还要用Grafana? 环境操作步骤一、Grafana安装二、Grafana数据源Prometheus添加三、Grafana添加数据仪表盘补充、如何查找仪表盘 Graf…

力扣题解(设计跳表)

1206.设计跳表 已解答 不使用任何库函数,设计一个 跳表 。 跳表 是在 O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。跳表相比于树堆与红黑树,其功能与性能相当,并且跳表的代码长度相较下更短,其设计思想与链表相似。 …

09.C2W4.Word Embeddings with Neural Networks

往期文章请点这里 目录 OverviewBasic Word RepresentationsIntegersOne-hot vectors Word EmbeddingsMeaning as vectorsWord embedding vectors Word embedding processWord Embedding MethodsBasic word embedding methodsAdvanced word embedding methods Continuous Bag-…

汉初三杰韩信,是不是颍川人

再重复一次,此韩信非彼韩信,说的是汉初三杰淮阴侯韩信,不是韩王信。 他俩的共同之处还真多,同名同姓,都被封王,八大异姓王韩姓占了两位。而且,结局也一样,都因反判罪被朝廷处死。这…

图书馆、档案馆、博物馆之智能建筑设计要求比较

关注我们 - 数字罗塞塔计划 - 随着科技的不断进步以及人们对建筑功能需求的日益提升,智能化技术在建筑领域的应用越来越广泛。将建筑物的结构、系统、服务和管理根据用户的需求进行最优化组合,进而为用户提供一个高效、舒适、便利的人性化建筑环境&…

通过Arcgis从逐月平均气温数据中提取并计算年平均气温

通过Arcgis快速将逐月平均气温数据生成年平均气温数据。本次用2020年逐月平均气温数据操作说明。 一、准备工作 (1)准备Arcmap桌面软件; (2)准备2020年逐月平均气温数据(NC格式)、范围图层数据&…

[论文笔记]RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL

引言 今天带来又一篇RAG论文笔记:RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL。 检索增强语言模型能够更好地适应世界状态的变化并融入长尾知识。然而,大多数现有方法只能从检索语料库中检索到短的连续文本片段&#xff0…

再见微软Excel, AI Excel带你轻松搞定复杂数据分析

大家好,我是YUAN哥。在数据处理的世界里,Microsoft Excel一直是我们的好帮手。不过,现在有一种更聪明、更简便的方式来管理和分析数据——那就是将AI引入电子表格。今天,我要向大家介绍一个神奇的新工具——Numerous.ai。 首先&am…

SepViT: Separable(分离式) Vision Transformer

Vision Transformers(ViT)在一系列的视觉任务中取得了显著的成功。然而,这些Transformer模型通常依赖大量的计算成本来实现高性能,这使得在资源受限的设备上部署它们变得非常困难。研究者们从深度可分离卷积(depthwise separable convolution)中汲取经验,并模仿其设计理…