一、实现目标

        生活中二维码无处不在,如网页登录,添加好友,扫码支付等等,今天我们使用 Python 生成各类酷炫二维码,通过今天的学习,我们能制作出普通、图片和动态二维码。

二、实现步骤

2.1 二维码的原理

        二维码,是上个世纪90年代由日本工程师发明的。其结构看起来并不复杂,就是一堆黑色和白色的小方格子,组成了一个大方格。

        在这些小方块中,白色的方块表示0,黑色的方格表示1,这些0和1构成的二进制字符串就可以转换成各种数字、字母、汉字等。
        在左上、左下和右上有三个一模一样的方块,是用来定位的。你可以拿出手机来扫码试一试,不管是正着扫,倒着扫,还是斜着扫,出来的结果都是一样的。

        计算机在生成二维码时,会把数字、字母、汉字等字符进行二进制转换,也就是变成由0和1组成的一大串数字。接着,0对应白色小方块,1对应黑色小方块,按照8个一组,填进大方块里,就生成了可被手机相机识别的二维码图案了。

2.2 安装导入模块

        在了解了二维码的原理后,接下来要编写代码生成二维码。在这里,我们使用的是 MyQR 模块,它可以生成普通、图片和动态二维码。
        MyQR 不是一个内置模块,所以在使用前要先通过代码 pip install MyQR 进行安装。如果电脑中同时存在Python 2 和 3,可能需要将pip改成pip3,pip3 install MyQR。如果在自己电脑上安装不上或安装缓慢,可在命令后添加pip install MyQR -i https://pypi.tuna.tsinghua.edu.cn/simple/进行加速。

        安装完成后,我们只需要使用 MyQR 模块中的 myqr 类,这里要用到 from...import... ,从 MyQR 中导入 myqr。

# 使用from...import从MyQR模块中导入myqr
from MyQR import myqr

2.3 制作二维码

        从 MyQR 模块中导入 myqr 后,只需要调用 myqr.run() 函数并设置其参数,就可以生成二维码。

myqr.run(words="yequ",
         save_name="yequ.png",
         picture="/Users/yequ/np.png",
         colorized=True,
         version=10)

        myqr.run() 函数常用参数有words、save_name、picture、colorized、version。

        参数 words:类型为字符串(str),是必选参数,它可以设置二维码的内容。如果把 words 的值设置为链接,手机扫码后跳转到链接处;如果设置为英文或者数字,扫码后可以看到对应内容。由于 MyQR 模块暂不支持中文,如果将参数 words 设置为中文,程序会报错

        参数 save_name:类型为字符串(str),是默认参数。设置二维码的保存位置和名称;如果不修改参数 save_name 的值,就会默认生成的二维码文件名为"qrcode.png"。

        参数 picture:类型为字符串(str),是默认参数。将二维码与图片路径结合,产生一张黑白二维码图片。支持格式有 .jpg,.png,.bmp,.gif。

        参数 colorized:类型为布尔值(bool),是默认参数。参数 colorized 的值默认为 False,生成的二维码为黑白色;将参数值设置为 True,二维码变为彩色。

        参数 version:类型为整型(int),是默认参数。参数 version 的值范围在 1 到 40,数字越大,二维码的边长也越长。

示例1、制作一个最简单的二维码

# 使用from...import从MyQR模块中导入myqr
from MyQR import myqr

# 示例1:生成最简单的二维码
myqr.run(words="qrtest",
         save_name=r"D:\学习资料\Python\test\qrtest01.png")

示例2:制作一个彩色动态二维码

# 示例2:制作一个彩色的动态二维码
# 使用from...import从MyQR模块中导入myqr
from MyQR import myqr

myqr.run(words="qrtest",
         save_name=r"D:\学习资料\Python\test\haokan.gif",
         picture=r"D:\学习资料\Python\test\haokanjj.gif",
         colorized=True,
         version=10)

示例3:制作一个带地址链接的二维码

# 使用from...import从MyQR模块中导入myqr
from MyQR import myqr

myqr.run(words="https://hbimg.huaban.com/e69ffa50e0898b93a2667442321c27fee8691ccea336c-eH0NSg_fw658",
         save_name=r"D:\学习资料\Python\test\result-qrtest02.gif",
         picture=r"D:\学习资料\Python\test\qrtest02.gif",
         colorized=True,
         version=10)

        扫一扫二维码便可看到URL的内容

三、总结

        通过本实例,我们用MyQR模块的run()函数制作了各种有趣的二维码。了解了run()函数的常用参数,除了这些参数外,myqr.run() 函数中还有其他的参数,例如, save_dir(二维码存储位置),brightness(调节二维码的亮度)等,所有的参数已经列举在图片中,供大家学习。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐