用Python制作炫酷的专属二维码

Hi,大家好。在此之前介绍过二维码如何测试:你们要的二维码测试点来了,扫它!我们了解到,作为测试工程师如何测试二维码。
那么怎么用代码制作自己的个性化二维码呢?本文就和小伙伴一起用Python来实现,制作一个专属的二维码。

一、二维码相关知识

1.二维码
二维码( 2−Dimensional Barcode),又称二维条形码。它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形来记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念。
二维码特征总结如下:

  • 二维码有其特定的字符集,每个字符占有一定的宽度,每种码具有一定的校验功能,同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。

  • 二维条形码是在二维空间水平和竖直方向存储信息的条形码。它的优点是信息容量大,译码可靠性高,纠错能力强,制作成本低,保密与防伪性能好。

  • 二维码使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理。

目前,世界上应用最多的二维条码符号有Aztec Code、PDF147、QR Code等。 

 2.常见二维码介绍

(1)  MyQR

 

MyQR可以生成常见的二维码、艺术二维码(黑白或彩色), 动态二维码(黑白或彩色)。

 

MyQR好用,唯一的缺点就是,不支持中文,它只支持以下字符:

  • 数字 0 到 9;

  • 大小写的英文字母;

  • 常用英文标点符号和空格;



(2)  QR Code

QR Code是常见的二维码之一,QR全称是Quick Response,是一个近几年来移动设备上超流行的一种编码方式。它的结构如下:

 QR Code属于矩阵式二维条码,又称棋盘式二维条码。它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。主要有以下特点:

  • 符号规格从版本1(21×21)到版本40(177×177),每提高一个版本,每边增加4个码元(即指构成QR码的方形黑白点);

  • 信息容量大:能存储7089个数字字符或4296个字母字符或2953个8位字节字符或1817汉字字符;

  • 纠错能力强:即使部分编码变脏或破损,也可以恢复数据。L级约可纠错7%的数据码字,M级约可纠错15%的数据码字,Q级约可纠错25%的数据码字,H级约可纠错30%的数据码字;

  • 可以从任意方向读取:QR码可以从360°任一方向均可快速读取。通过QR码中的三处定位图案,可以帮助QR码不受背景样式的影响,实现快速稳定的读取。

  • MyQR制作二维码

     

    MyQR 库是 Python 中最流行的二维码制作函数库。它通过一个简单的函数就可以生成生动有趣的二维码,可谓是二维码制作神器。

    1
    MyQR介绍

    (1)  MyQR安装

    在系统命令行输入安装命令,等到提示下载成功即可。

    (2)  MyQR参数

    使用 MyQR 库中的一个模块 myqr 来制作二维码,引用方式为from MyQR import myqr其参数如下所示:

    参数 类型 说明
    words str 二维码内容,链接或者句子
    version int 二维码大小,范围为[1,40],默认1,即21*21
    level str 二维码纠错级别,范围为{L,M,Q,H},默认L,H为最高级
    picture str 自定义二维码背景图,支持格式为 .jpg,.png,.bmp,.gif,默认为黑白色
    colorized bool 二维码背景颜色,默认为 False,即黑白色
    contrast float 对比度,值越高则对比度越高,默认为 1.0
    brightness float 亮度,值越则高亮度越高,默认为 1.0,值常和对比度相同
    save_name str 二维码名称,默认为 qrcode.png
    save_dir str 二维码路径,默认为程序当前工作路径

    MyQR安装完成,接下来就可以愉快使用了。

    2
    制作MyQR二维码

    (1)  MyQR 普通二维码

    普通二维码指的是没有背景图片的二维码。示例代码如下: 

  • 运行后,注意PyCharm中不会有什么变化,默认名为ITester_1.png的二维码会存放在save_dir指定的路径文件夹。如上代码,我的二维码图片就生成在当前项目路径下。

    生成普通二维码,效果如图所示:

原文地址:https://www.cnblogs.com/ITester520/p/15170031.html