用Python制作炫酷的专属二维码_python简单二维码生成代码

liftword2个月前 (02-08)技术文章17


点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍,小窗口回复“资源”、“测试工具包”领取测试资源。

本文5586字,阅读约需14分钟


Hi,大家好。在此之前介绍过二维码如何测试:你们要的二维码测试点来了,扫它!我们了解到,作为测试工程师如何测试二维码。


那么怎么用代码制作自己的个性化二维码呢?本文就和小伙伴一起用Python来实现,制作一个专属的二维码。


二维码相关知识


二维码

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


二维码特征总结如下:

  • 二维码有其特定的字符集,每个字符占有一定的宽度,每种码具有一定的校验功能,同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。
  • 二维条形码是在二维空间水平和竖直方向存储信息的条形码。它的优点是信息容量大,译码可靠性高,纠错能力强,制作成本低,保密与防伪性能好。
  • 二维码使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理。


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


常见二维码介绍

(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 中最流行的二维码制作函数库。它通过一个简单的函数就可以生成生动有趣的二维码,可谓是二维码制作神器。


MyQR介绍

(1) MyQR安装

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

# 公众号:ITester软件测试小栈
pip install 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安装完成,接下来就可以愉快使用了


制作MyQR二维码

(1) MyQR 普通二维码

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


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


(2) MyQR 静态二维码

接下来我们使用静态图片来生成为背景为彩色或黑白的自定义图片二维码。


生成黑白背景二维码图片,示例代码如下:


生成彩色背景二维码图片,示例代码如下:


MyQR 动态二维码

使用 gif图片作为背景图而生成的动态二维码。

首先准备GiF图片,如下:


生成黑白背景二维码图片,示例代码如下:


生成彩色动态二维码图片,示例代码如下:


qrcode制作二维码


qrcode安装及介绍

(1) qrcode安装

qrcode的功能虽稍逊于MyQR,但是它支持中文字符,且能生成矢量图,安装命令如下:

# 公众号:ITester软件测试小栈
pip install qrcode

(2) qrcode介绍

qrcode其参数如下所示:

参数

类型

说明

version

int

二维码大小,范围为[1,40],默认1,即21*21

error_correction

constants

二维码错误校正,范围为{L,M,Q,H}

box_size

int

控制QR码的每个格子有多少像素,默认为10

border

int

控制边框的格子宽度,默认为4

fill_color

str

二维码绘制色,默认为black

back_color

str

二维码颜色,默认为white

其中error_correction支持设置的错误校正级别,说明如下:

  • ERROR_ CORRECT_ _L:大约7%或者更少的错误会被更正。
  • ERROR_ CORRECT_ _M:大约15%或者更少的错误会被更正。
  • ERROR_ CORRECT_ Q:大约25%或者更少的错误会被更正。
  • ERROR_ CORRECT_ H:大约30%或者更少的错误会被更正。


qrcode安装完成,接下来就可以愉快的使用了。具体步骤如下:

  • 创建QRCode对象;
  • add_data()添加数据;
  • make_image()创建二维码(返回im类型的图片对象);
  • 自动打开图片,img.show();


qrcode制作二维码

(1) qrcode 普通二维码

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


(2) qrcode 生成带图片的二维码

qrcode生成带logo的二维码图片,示例代码如下:


以上就是通过MyQRqrcode制作二维码的介绍,小伙伴们可以根据自己的需要试试用Python制作自己的博客二维码、网站二维码,测开平台二维码等等。如果认为本文有帮助,欢迎分享、点赞、收藏、评论四连爱。


更多系列文章

敬请期待



我是CoCo,计算机科学与技术专业,深漂大厂互联网民工(女),坐标深圳。5年工作经验,3年持续输出技术文。ITester软件测试小栈(ID:ITestingA),专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍,愿我们在更高处相逢。喜欢记得星标?我,每周及时获得最新推送,第三方转载请注明出处。

想获取更多最新干货内容

快来星标 置顶 关注

相关文章

概率分布与编程:二项式分布、泊松分布的原理,Python3如何实现

在说二项式分布之前,先来复习一下排列组合的概念,尤其是组合(Combination) C。排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个不同的元素按照一定的顺序排成一列,叫做...

Python常用算法学习(7) 动态规划,回溯法(原理+代码)-最全总结

引言:从斐波那契数列看动态规划  斐波那契数列:Fn = Fn-1 + Fn-2 ( n = 1,2 fib(1) = fib(2) = 1)练习:使用递归和非递归的方法来求解斐波那契数列的第 n 项...

按照概率学原理,你这牌一看就胡不了

撰文 比邻星春节假期,独乐乐不如众乐乐。如果要选择一种声音代表新春佳节的团聚,除了噼里啪啦的鞭炮、杯盏相碰的清脆,一句“三缺一”和麻将桌上哗啦啦的搓麻声必定占有一席之地。麻将在不同段位的玩家眼中代表着...

林俊杰的元宇宙房地产塌房,周杰伦站台的NFT稀碎

萧箫 发自 凹非寺量子位 | 公众号 QbitAI元宇宙房产和NFT暴跌,明星也拦不住。林俊杰花50多万元在元宇宙买下的三块虚拟地产暴降80%,跌到9万多元。这些地产如今访问量几乎为零,周围也完全没有...

python经典算法实践:回溯算法backtrack

回溯算法导读回溯法(back tracking)(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,...

python算法基础之回溯_python 回测代码

回溯法定义回溯法是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条...