Python工具箱系列(五十四)

news/2024/11/19 11:31:14/文章来源:https://www.cnblogs.com/shanxihualu/p/18291401

二维码生成

二维码(Quick Response Code)几乎已经渗透到我们日常生活的每一个角落,它是 1994 年发明的一种矩阵条形码,可以用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形。在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。实际应用中,二维码通常包含指向网站或应用程序的URL、标识符等,它的基本结构如下图所示。

 

二维码的结构充分保证了它的有效性,所以二维码才能够大行其道,成为应用的主流。以下代码生成2个二维码。

import qrcode
import zxing
from PIL import Image
from pyzbar.pyzbar import decodedef genqr(text, outputfilename):qr = qrcode.QRCode(version=3, error_correction=qrcode.constants.ERROR_CORRECT_Q, box_size=10, border=4)qr.add_data(text)qr.make(fit=True)img = qr.make_image(fill_color="green", back_color='white')img.show()img.save(outputfilename)def scanqr(inputimg):im = Image.open(inputimg)for qrcode in decode(im):print(qrcode.data.decode('utf8'))def scanqr2(inputimg):reader = zxing.BarCodeReader()barcode = reader.decode(inputimg)print(barcode.parsed)genqr("宁思一进,莫思一停", r'd:\test\qrdemo.png')
scanqr(r'd:\test\qrdemo.png')genqr("https://www.shanxihualu.com/", r'd:\test\qrdemourl.png')
scanqr2(r'd:\test\qrdemourl.png')

二维码qrdemo.png如下图所示。

 

这个图直接使用微信的扫一扫就能够看到里面的文字。也可以使用scaqr函数加载这个图片后识别出来

二维码qrdemourl.png如下图所示。

 

直接使用微信扫一扫就可以到陕西华路的官网上(因为它是一个URL超链)。使用scanqr2也可以识别出来。需要指出的是,上述代码中使用了2个识别二维码的第三方库:

  • •zxing
  • pyzbar

它们的安装过程如下所示。

pip install qrcode
pip install pyzbar
pip install zxing

此外,还可以使用myqr来生成更多有趣变化的二维码。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接入应用内支付服务,提高商业变现效率

在当今竞争激烈的移动应用市场中,开发者们面临着提升应用商业变现能力的挑战。用户体验的流畅性和支付的安全性至关重要。 HarmonyOS SDK应用内支付服务(IAP Kit)为开发者提供了一站式的解决方案,简化了应用内支付的接入流程,同时确保了支付的便捷性和安全性。这不仅有效提…

如何将文本转换为向量?

​本文介绍如何通过模型服务灵积DashScope将文本转换为向量,并入库至向量检索服务DashVector中进行向量检索。 模型服务灵积DashScope,通过灵活、易用的模型API服务,让各种模态模型的能力,都能方便的为AI开发者所用。通过灵积API,开发者不仅可以直接集成大模型的强大能力,…

(八)ADO.NET用窗体应用程序写增删查改——改(1.1升级版)

在1.0版本中,紧接前面两节“增”、“删”、“查”代码,这里新增“改”功能 一、首先编辑好要修改的控件和相关属性,这里“编号”默认只读属性(ReadOnly)二、其次,修改下窗体显示的代码,让数据直接显示出来,这里我们用一个方法封装好,直接在窗体加载事件(Load)中调用…

机器人(Turtlebot3+OpenMANIPULATOR-X) 远程操作和控制演示

原文链接:Robot (Turtlebot3 + OpenMANIPULATOR-X) Teleoperation and Control demonstration (youtube.com) 在机器人技术的前沿,Turtlebot3与OpenMANIPULATOR-X的结合展示了远程操作和控制的新境界。Turtlebot3,一个多功能移动平台,搭载先进的传感器,能够自主导航并避开…

【触想智能】工业一体机在工程机械车辆上的应用分析

随着工程机械行业的不断发展和自动化程度的提高,工业一体机在工程机械车辆上的应用越来越广泛。工业一体机是集电脑、显示器、触摸屏、通讯、测量、控制等多种功能于一体的高度集成化的工业控制系统,在工程机械车辆上的应用可以为用户提供更为便捷、高效、安全的操作体验。下…

RK3588开发笔记(四):基于定制的RK3588一体主板升级镜像

前言方案商定制的主板,加入了360环视算法功能,涉及到了一些库的添加,重新制作了依赖库的镜像,镜像更新的原来的板子上。 定制的板子升级接口type-c设计接口是type-c,需要通过type-c数据线转USB连接电脑,这里开发板都是USB对USB口的线,设计有所不同。  升级按键方法这里…

深度解读昇腾CANN内存复用技术,降低网络内存占用

内存复用技术可在不影响网络执行性能的前提下降低内存占用,结合Topo优化可以进一步降低内存占用,且对执行性能影响也较小。本文分享自华为云社区《深度解读昇腾CANN内存复用技术,降低网络内存占用》,作者: 昇腾CANN。 随着大模型的兴起,神经网络规模不断扩大,对内存资源…

备份脚本

1.Oracle RMAN备份 1.1 创建目录[oracle@OEL7 ~]$ mkdir -p /u01/dbbak/script[oracle@OEL7 ~]$ cd /u01/dbbak[oracle@OEL7 ~]$ chown -R oracle:oinstall script[oracle@OEL7 ~]$ mkdir -p /u01/dbbak/db[oracle@OEL7 ~]$ mkdir -p /u01/dbbak/arch[oracle@OEL7 ~]$ cd /u01/…

聊聊springboot项目如何利用jmh来进行基准测试

前言1、什么是JMHJMH(Java Microbenchmark Harness)是由OpenJDK团队开发的一个用于Java微基准测试工具套件,主要是基于方法层面的基准测试,精度可以达到纳秒级。它提供了一种标准、可靠且可重复的方式来衡量Java代码的性能,包括方法调用、对象创建以及其他类型的 JVM 级别…

echart - x轴文字太长换行、文字倾斜、文字竖直展示

echart - x轴文字太长换行、文字倾斜、文字竖直展示 设置超过几个字换行显示xAxis: {axisLabel: {formatter: function (params) {var str = ""; // 最终拼接成的字符串var paramsLen = params.length;// 获取每项文字的个数var len = 4; …

Vscode+CodeRunner 更加优雅的运行MPICC

Vscode+CodeRunner 更加优雅的运行MPICC 1.安装 在VsCode拓展中安装CodeRunner2.配置点击设置点击 在setting.json中编辑3.setting.json设置 这里我们以cpp为例 偷懒可以直接把下面的json文件做替换 {"workbench.colorTheme": "Quiet Light","remote.…

几行代码,优雅的避免接口重复请求!同事都说好!

背景简介 我们日常开发中,经常会遇到点击一个「按钮」或者进行「搜索」时,请求接口的需求。 如果我们不做优化,连续点击「按钮」或者进行「搜索」,接口会重复请求。❝ 首先,这会导致性能浪费!最重要的,如果接口响应比较慢,此时,我们在做其他操作会有一系列bug! ❞ 那…