社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

手把手教你用 Python 打造一款属于你自己的个性二维码

AirPython • 4 年前 • 355 次点击  
👆本文转载自公众号【 Python 爬虫与数据挖掘 】

详情可以点击上方卡片,关注该公众号,获取更多好文推荐



/前言/

在现代社会中,我们出行坐公交经常会看到二维码,支付宝微信收款也会有二维码扫一扫,那么这些二维码是怎样生成的了,今天我们不研究二维码的原理,只教大家如何制作属于自己的二维码。


/项目目标/

自己用程序打造一款属于自己的个性二维码。


/项目准备/

编辑器:sublime text 3    

浏览器:360 浏览器    

模块:MyQR


/实现步骤/

一、分析网站二维码生成

在实践前我们可以先看看网站上的二维码生成。

在这里我要分享一个二维码网址,算是知名度比较大的二维码在线生成工具:草料二维码。

它支持很多种生成二维码的方式:

可以看出生成种类还是挺丰富的,基本上能满足我们所有的要求,而且他还有很多其他丰富的功能。最重要的是所有功能都免费。

这样就完成了一个文本二维码,我们只要用扫码工具一扫就能看到 ‘任性的90后boy’ 这几个字


二、模块生成

下面我们来用命令集制作属于自己的二维码,今天给大家介绍一个神器:myqr 模块。

它的操作方法比较简单,只需在 cmd 窗口中操作即可。

1.安装

pip install myqr


2.基本用法

可以看出它生成一张照片,而且我把它找出来了,真的太机智啦~

打开我的微信一扫,显示的就是 ‘/?’,原谅我还没从cmd的命令中缓过神来。下面我们来看看帮助文件能给我们什么答案吧。

显示的包的内容是他可以是一个脚本也可以是一个命令行,还是挺强大的,先去看它的源代码吧。

通过分析我知道了这个工具的确强大,而且参数也不多,比较简单。下面是我总结它的参数含义,不知道对不对:

words:单词,应该是内容version:版本level:级别picture:背景图colorized:颜色contrast:对比度brightness:亮度save_name:名称save_dir:路径


3.生成原始二维码

那么说淦就淦,我们先来生成张简单的吧。

可以看到成功,通过扫码,很顺利就扫到hello。


4.生成带背景图的二维码

不过,这样的二维码实在是太普通了,我们可不可以在丰富下它的功能呢?答案当然是可以的。比方说我们给它加个背景图。

生成出来了,不过有点丑


5.生成带颜色的二维码

我想着应该可以给二维码加点颜色。于是乎加了一句代码就生成了,简单来说就是一个参数就 ok

它就是 colorized,只要将它设为你 True,即可显示背景图的颜色,背景图有了颜色,自然二维码也会有


6.修改二维码大小

看起来像那么回事了,不过这个二维码会不会太小了,给它整大点,通过查文档得知只需更改它的 version 值即可,有点想不通,version不是版本的意思吗,怎么到你那儿就成大小了?难道不是 size 吗,不管了,言归正传

嗯嗯,现在有点像样了


7.动态二维码生成

其实我们在这里要想生成动态二维码也很简单,只需将生成类型和背景图片设置为 gif 即可

from MyQR import myqrmyqr.run(words='hello',version=


    
10,picture='12.gif',colorized=True,save_name='hello.gif',save_dir='./Game2')


/小结/

其实MyQr还可以通过命令行来操作生成二维码,但是我们Python程序员天生就很Python,所以还是Python好

通过对二维码的了解使我知道了它的神器之处,原来一个二维码如此简单就能生成出来,也惊叹世人的伟大与不朽

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/113751