今天来教大家一个比较有趣的内容,如何用Python制作个性二维码,后面会附上教你如何美化自己微信公众号二维码,美化自己微信名片二维码、QQ二维码、CSDN名片二维码、微博名片二维码、自己文章链接二维码。一应俱全。。。。
二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它能将数字、英文字母、汉字、日文字母、特殊符号(如空格,%,/ 等)、二进制等信息记录到一个正方形的图片中。是一种矩阵式二维条码(又称棋盘式二维条码)。它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。
功能图形是不参与编码数据的区域。它包含空白区、位置探测图形、位置探测图形分隔符、定位图形、校正图形五大模块。空白区:空白区顾名思义就是要留空白。因此,这里不能有任何图样或标记,这样才能保证 QR 能被识别。位置探测图形:这个有点类似中文的“回”字。在 QR 码中有个这样的标识,它分别位于左上、右上和左下角,作用是协助扫描软件定位 QR 码并转换坐标系。我们在扫描二维码的时候,不管是竖着扫、横着扫、斜着扫都能识别出内容,主要是它的功劳。位置探测图形分隔符:主要作用是区分功能图形和编码区域。定位图形:它由黑白间隔的格子组成的线条,主要用于指示标识密度和确定坐标系。原因是 QR 码一种有 40 个版本,也就是说有 40 种尺寸。每种二维码的尺寸越大,扫描的距离就越远。校正图形:只有 Version 2 及以上的QR码有校正标识,校正标识用于进一步校正坐标系。
编码区域是数据进行编码存储的区域,它由格式信息、版本信息、数据和纠错码字三部分构成。格式信息:所有尺寸的二维码都有该信息。它存放一些格式化数据的信息,例如容错级别、数据掩码,和额外的自身 BCH 容错码。版本信息:版本信息是规定二维码的规格。前面讲到 QR 码一共有 40 种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本的每边增加4个模块。数据和纠错码:主要是存储实际数据以及用于纠错码字。
今天的主角是MyQR包,其安装方法是pip install MyQR
,接下来说一下该包的一些函数。
我们经常使用 MyQR 库中的一个模块 myqr 来制作二维码,引用方式为from MyQR import myqr
其参数如下所示:
words:二维码内容,链接或者句子
version:二维码大小,范围为[1,40]
level:二维码纠错级别,范围为{L,M,Q,H},H为最高级,默认。
picture:自定义二维码背景图,支持格式为 .jpg,.png,.bmp,.gif,默认
为黑白色
colorized:二维码背景颜色,默认为 False,即黑白色
contrast:对比度,值越高对比度越高,默认为 1.0
brightness:亮度,值越高亮度越高,默认为 1.0,值常和对比度相同
save_name:二维码名称,默认为 qrcode.png
save_dir:二维码路径,默认为程序工作路径
案例一:制作一个文本二维码【ps】该模块对中文不太友好,所以这里使用英文,请用手机微信扫描观看!
from MyQR import myqr
myqr.run(words="Hello! I'm Jetuser",version=9,
save_name="text1.png",
save_dir="D:/Pictures/")
)
案例二:制作一个链接二维码【ps】这里将使用我的微信公众号链接制作一个二维码,请用手机微信扫描观看!且关注,哈哈哈~~
from MyQR import myqr # words 为你需要弹出的链接地址,包括文章链接等等
myqr.run(words="http://weixin.qq.com/r/O0Nje7XEwei_rfEY9xYp",version=9,
save_name="text1.png",
save_dir="D:/Pictures/")
(扫描关注:不一样的数据分析)
这里你肯定会说,这没什么的,我的微信就可以完成,是的你说的没错,但是如果我们需要换上自己的照片,让二维码背景变成自己炫酷的照片,该怎么办呢?公众号或者APP自动生成的照片可没有这个功能,此时强大的picture背景就来了!
案例三:制作一个链接自定义背景二维码【ps】这里风格图片是本人的头像,你也可以换自己的头像,请用打开手机微信扫描观看!且关注,哈哈哈~~
from MyQR import myqr
# 普通二维码
# qr.add_data(open('pic.img', 'r').read())
myqr.run(
words='http://weixin.qq.com/r/O0Nje7XEwei_rfEY9xYp',
version=5,
level='H',
contrast=0.99, # 调整底图的亮度越大越亮
# words='D:/Pictures/2.gif',
picture='D:/Pictures/my.png', # 风格图片
colorized=True,
save_name='myr.png',
save_dir='D:/Pictures/'
)
这里你肯定会说,这也太平常了,难道就没有你文章开篇那种动态的教程吗?安排!!
from MyQR import myqr
# 普通二维码
# qr.add_data(open('pic.img', 'r').read())
myqr.run(
words='http://weixin.qq.com/r/O0Nje7XEwei_rfEY9xYp',
version=5,
level='H',
contrast=0.99, # 调整底图的亮度越大越亮
# words='D:/Pictures/2.gif',
picture='D:/Pictures/2.gif', # 风格图片
colorized=True,
save_name='myr.gif',
save_dir='D:/Pictures/'
)
自制其他二维码,这里扫出来内容是一张图片,请截图,再到微信扫描关注我。【这里需要注意,动态背景图片为GIF格式,如果你喜欢某个电影片段作为背景,请将其转为GIF格式,如果自己没时间做没时间研究,关注我私信我帮你做】
分类一:科技类【部分对比】
分类二:浪漫类
分类三:诱惑类
分类四:浪漫二次元