python3使用myqr生成链接二维码

编程之家收集整理的这篇文章主要介绍了python3使用myqr生成链接二维码编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

搜索热词

技术背景

二维码技术在各个领域中都已经有非常成熟的应用,比如随处可见的二维码支付,比如疫情期间的绿码,再比如工业领域中,可以使用二维码作为定位的标签,大大提升了室内定位技术的精确度。二维码的格式内容大致如下图所示(图片来自于参考链接2):


有人担心说,二维码被频繁的使用,中国一年要消耗15亿以上的二维码,那么二维码会有被用完的那一天吗?经过参考链接2中的计算,如果要使用完所有的二维码,需要全球70多亿的人口每个人消耗\(10^{134}\)二维码就可以了,这可比湾湾一天吃18公斤的凤梨难度大多了。在本文中,我们要介绍使用python代码生成一个专属的二维码

安装myqr

MyQR跟其他的python库一样,可以通过pip来进行安装和管理:

[dechin@dechin-manjaro myqr]$ python3 -m pip install myqr
Collecting myqr
  Downloading MyQR-2.3.1.zip (16 kB)
Requirement already satisfied: imageio>=1.5 in /home/dechin/anaconda3/lib/python3.8/site-packages (from myqr) (2.9.0)
Requirement already satisfied: numpy>=1.11.1 in /home/dechin/anaconda3/lib/python3.8/site-packages (from myqr) (1.20.1)
Requirement already satisfied: Pillow>=3.3.1 in /home/dechin/anaconda3/lib/python3.8/site-packages (from myqr) (8.0.1)
Building wheels for collected packages: myqr
  Building wheel for myqr (setup.py) ... done
  Created wheel for myqr: filename=MyQR-2.3.1-py3-none-any.whl size=16668 sha256=21cf0a4fbb5d3208097fd280553ed3437ffa4cc218db528cbb14332336642b8f
  Stored in directory: /home/dechin/.cache/pip/wheels/f8/b0/38/01c1fd37a94a2046d4fda17344fbecb454f1a907e8482d6d82
Successfully built myqr
Installing collected packages: myqr
Successfully installed myqr-2.3.1

显示安装成功后,就可以开始在本地使用myqr来生成自己的专属链接二维码了。

生成普通黑白二维码

首先我们用ipython来生成一个最简单最基础的二维码。使用的方法非常的简单,只需要配置好myqr.run中的参数即可。第一个参数words是代表需要跳转链接,比如这里我们将博客主页的链接作为二维码的words。第二个参数version二维码的大小,范围是1到40。更多的参数配置信息如下图所示(图片来自于参考链接1):


那么我们开始演示一个简单的示例:

[dechin@dechin-manjaro myqr]$ ipython
Python 3.8.5 (default,Sep  4 2020,07:30:14) 
Type 'copyright','credits' or 'license' for more information
IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from MyQR import myqr

In [2]: myqr.run(words='https://www.cnblogs.com/dechinphy/',version=9,save_name='mainpage.png
   ...: ',save_dir='/home/dechin/projects/2021-python/myqr')
line 16: mode: byte
Out[2]: (9,'H','/home/dechin/projects/2021-python/myqr/mainpage.png')

在这个示例中我们只配置了链接、大小、存储名称和存储地址。其中存储地址可以查看pwd指令的返回结果:

[dechin@dechin-manjaro myqr]$ pwd
/home/dechin/projects/2021-python/myqr

然后将这个当前目录的绝对路径作为最终的存储地址。执行完myqr.run之后,会在本地生成一个png文件

[dechin@dechin-manjaro myqr]$ ll
总用量 4
-rw-r--r-- 1 dechin dechin 1751  4月 16 10:40 mainpage.png

文件内容为:

生成静态图片背景的二维码

这里我们用头像的图片作为一个背景图片


然后需要在上述的代码修改一些配置信息,比如读取的picture名称和存储名称(避免存储覆盖)等:

In [3]: myqr.run(words='https://www.cnblogs.com/dechinphy/',picture='1.png',coloriz
   ...: ed=True,save_name='mainpage_withgraph.png',save_dir='/home/dechin/projects/2021-pytho
   ...: n/myqr')
line 16: mode: byte
Out[3]: (9,'/home/dechin/projects/2021-python/myqr/mainpage_withgraph.png')

执行完成后生成二维码效果如下:

生成动态图背景的二维码

原理和使用方法跟上一个章节是一样的,只是把picture的参数配置为一个动态gif图,当然,由于我们希望输出二维码也是一个动态效果图,因此在输出的格式中也要对应的配置为gif格式。由于博客限制不能上传10M以上大小的图片,这里我们找了一张小一点的gif动态图作为背景(图片来源于网站):


对应的配置python代码如下:

In [4]: myqr.run(words='https://www.cnblogs.com/dechinphy/',picture='bishi.gif',col
   ...: orized=True,save_name='mainpage_withgif.gif',save_dir='/home/dechin/projects/2021-pyt
   ...: hon/myqr')
line 16: mode: byte
Out[4]: (9,'/home/dechin/projects/2021-python/myqr/mainpage_withgif.gif')

gif动态图的处理和生成时间也会比静态图长很多,需要耐心的等待。经过一段时间的处理后,会在本地生成这样的一张二维码

题外话

其实配合之前的博客中所介绍的,通过python来生成安卓程序的方法,我们可以将生成二维码的这个功能制作成一个简单的app以供移动端的日常使用。但是这里我们重点还是介绍二维码生成方法,而且已经有很多在线的免费的二维码生成器可以使用,因此暂不展开实践。用在线生成生成二维码效果如下:


同时,有二维码生成器那么就有二维码的解码器,比如这个在线二维码解码器,效果如下:

总结概要

二维码技术在日常生活和工业应用中都担任着非常重要的角色,这里我们可以使用python的myqr来生成个性化的二维码,比如带图片背景的二维码,或者是动态背景的二维码。经过测试,用微信扫码都成功的识别了出来,也就是说这些二维码都是可以直接拿来使用的。当然,现在技术都已经非常成熟,所以有很多线上的免费的二维码生成器可以使用,配套的也有二维码解码器,可以将生成二维码翻译成文字

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/myqr.html
作者ID:DechinPhy
更多原著文章请参考:https://www.cnblogs.com/dechinphy/

参考链接

  1. https://blog.csdn.net/Time_D/article/details/88822258
  2. https://zhuanlan.zhihu.com/p/80328953

总结

以上是编程之家为你收集整理的python3使用myqr生成链接二维码全部内容,希望文章能够帮你解决python3使用myqr生成链接二维码所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群:1065694478(已满)
编程之家官方2群:163560250(已满)
编程之家官方3群:312128206(已满)
编程之家官方4群:230427597

相关文章

猜你在找的Python相关文章

最近在研究Python写的ERP项目,在pip安装包的时候发现下载速度非常慢,原因是pip默认的源是在国外,所以我们需要配置国内的源,命令如下:$ mkdir ~/.pip$ vim ~/.pip/pip.conf添加以下内容:[global]index-url = https://mirrors.cloud.tencent.com/pypi/simple到此 pip配置...
一个完善的python项目,不仅需要梳理好核心代码的软件架构,还需要定义好依赖文件、编译构建文件、API接口文档、编码规范门禁等。这里我们介绍了如何用setup.py文件来完善一个最简单的python
本文中介绍了常规python中的异常的定义方法,可以在自己的python项目中定制化的实现一些异常类。在定制化的类中我们可以给打印信息加上一些醒目的颜色,用于提醒用户以促进问题的修改。
通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径下,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些
使用GPU来进行计算,可以极大程度上的加速我们所需要计算的任务,这得益于GPU强大的自带的并行化技术。pycuda的出现,使得我们不需要手工去写GPU的C或者C++代码也可以调用GPU来进行计算,还提
本文中通过python库diagrams展示了基础的架构图绘制的方法,库中提供了常用的AWS和k8S等场景下常用的组件标签,使得我们用python代码也可以绘制精美清晰的架构图。这里组件之间的连接和耦
在科学计算中对于恒定不变的数据,不一定需要实时保存在内存中,或者是需要跨平台运算的数据,我们可以将其保存为numpy格式的列表文件npy或者npz。而如果存储的文件过大,本文也额外介绍了简单的tar压
多进程技术是独立于算法任务本身的一种优化技术,通过python中的concurrent库,我们可以非常容易的实现多进程的任务,用来优化已有的算法。这里我们也给出了一些多进程配置信息的参考方案,在GPU