Python之路04-动态二维码

昨天写了一个简单的二维码生成脚本,解决了下载apk麻烦的问题,百度看到还有一个myqr的动态二维码模块,据说还是个大学生写的,很有意思,就自己试了试。

先了解一下myqr模块的参数含义吧:

参数 含义 详细 words 二维码指向链接 str,输入链接或者句子作为参数 version 边长 int,控制边长,范围是1到40,数字越大边长越大,默认边长是取决于你输入的信息的长度和使用的纠错等级 level 纠错等级 str,控制纠错水平,范围是L、M、Q、H,从左到右依次升高,默认纠错等级为'H' picture 结合图片 str,将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片 colorized 颜色 bool,使产生的图片由黑白变为彩色的 contrast 对比度 float,调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0 brightness 亮度 float,调节图片的亮度,其余用法和取值与 contrast 相同 save_name 输出文件名 str,默认输出文件名是"qrcode.png" save_dir 存储位置 str,默认存储位置是当前目录words二维码指向链接str,输入链接或者句子作为参数version边长int,控制边长,范围是1到40,数字越大边长越大,默认边长是取决于你输入的信息的长度和使用的纠错等级level纠错等级str,控制纠错水平,范围是L、M、Q、H,从左到右依次升高,默认纠错等级为'H'picture结合图片str,将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片colorized颜色bool,使产生的图片由黑白变为彩色的contrast对比度float,调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0brightness亮度float,调节图片的亮度,其余用法和取值与 contrast 相同save_name输出文件名str,默认输出文件名是"qrcode.png"save_dir存储位置str,默认存储位置是当前目录
words二维码指向链接str,输入链接或者句子作为参数
version边长int,控制边长,范围是1到40,数字越大边长越大,默认边长是取决于你输入的信息的长度和使用的纠错等级
level纠错等级str,控制纠错水平,范围是L、M、Q、H,从左到右依次升高,默认纠错等级为'H'
picture结合图片str,将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片
colorized颜色bool,使产生的图片由黑白变为彩色的
contrast对比度float,调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
brightness亮度float,调节图片的亮度,其余用法和取值与 contrast 相同
save_name输出文件名str,默认输出文件名是"qrcode.png"
save_dir存储位置str,默认存储位置是当前目录

1

myqr需要先安装一下,安装命令为pip install myqr。安装完成后根据需要配置环境变量,然后就可以开始操作啦。

最简单的生成二维码方式是在终端里直接输入 myqr https://www.cnblogs.com/hulk-1029/ -p 1.gif -c   

-p是picture参数,-c是colorized参数。没有加-c参数生成的则是黑白的动态图。

myqr调用方式也很简单,生成动态二维码的方式其实就是将一张动态图片作为二维码的背景而已。

在终端执行python myqr_code.py https://www.cnblogs.com/hulk-1029/ 即可生成如下图的动态二维码,需要注意的是,生成的动态二维码名称需要为.gif格式哦,否则就没有了动态的效果了。

1# -*- coding: utf-8 -*- 2 3import qrcode 4import os,sys 5from MyQR import myqr 6 7def parseArgs(sys_args=sys.argv): 8 apk_path = (lambda x: len(x)!=1 and x[1] or 'help')(sys_args) 9 # 分离所在目录和文件名 10 [dirname,filename]=os.path.split(apk_path) 11 # 分离扩展名 12 [fname,fename]=os.path.splitext(apk_path) 13 14 return dirname,filename,fname,fename ,apk_path 15 16def QrCode(path): 17 '''静态二维码''' 18 qr = qrcode.QRCode( 19 version=1, 20 error_correction=qrcode.constants.ERROR_CORRECT_L, 21 box_size=5, 22 border=2, 23 ) 24 apk_path = path[0]+'/'+path[1] 25 #print apk_path 26 qr.add_data(apk_path) 27 qr.make(fit=True) 28 img = qr.make_image() 29 img.save('%s.png' % (path[2].split('/')[-1])) 30 31def myqrCode(path): 32 '''动态二维码''' 33 myqr.run( 34 words='%s' % path[4], 35 picture='1.gif', # 同级目录下放一张动态图片作为二维码背景 36 colorized=True, 37 save_name='myqr.gif' 38 ) 39 40if __name__ == '__main__': 41 path_list = list(parseArgs()) 42 #QrCode(path_list). 43 myqrCode(path_list) 44

myqr_code.py

转载于:https://www.cnblogs.com/hulk-1029/p/11016550.html

代码交流 2021