登录
首页大数据时代学了python之后,美化二维码如此简单
学了python之后,美化二维码如此简单
2020-07-17
收藏

扫码,扫码,大家现在见得最多的图片就是二维码了。但是,你了解二维码吗,知道怎样美化二维码?生成动态二维码吗?今天小编就给大家分享怎样用python来美化二维码。操作很简单,相信大家很快就能学会,一起来看吧!

以下文章来源于: Python的乐趣

作者:一粒米饭

二维码(2-dimensional bar code),又称QR Code,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。本教程将展示如何在原有黑白图片的基础上,给二维码添加一些色彩和动态效果,即给二维码换个皮肤。首先,简单了解一下二维码的基础知识。

二维码的基础知识

一个普通二维码的基本结构如下:

其中位置探测图像、定位图像和校验图形用于定位功能;格式信息表示二维码的纠错级别,分为L、M、Q、H;版本信息:从21x21(版本1),到177x177(版本40),每一版本符号比前一版本 每边增加4个模块;数据和纠错码字就是实际保存的二维码信息以及二维码变脏或破损用于修正的信息。

了解了二维码的基本结构后,下面开始用Python美化二维码。

1. 安装第三方库zxing和myqr

zxing用来识别二维码中的内容,myqr用来生成个性化的二维码,安装命令如下:

$ pip install zxing myqr

2. 二维码简单背景替换

二维码图片如下:

背景图片如下:

                        

# 导入xzing和myqr
import zxingfrom MyQR import myqrimport os
# 解析二维码中的内容reader = zxing.BarCodeReader()content = reader.decode("qrcode.png")
# 生成新的二维码version, level, qr_name = myqr.run(words=content.parsed,                   # 上面解析出来的二维码内容
    version=1,                              # 设置容错率为最高
    level='H',                              # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
    picture="luffy.png",                    # 要使用的图片
    colorized=True,                         # 彩色二维码
    contrast=1.0,                           #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
    brightness=1.0,                         #用来调节图片的亮度,其余用法和取值同上
    save_name="qr_colorized.png",           # 保存文件的名字,格式可以是jpg,png,bmp,gif
    save_dir=os.getcwd()                    #保存位置
)

# 效果如下

下面再展示如何生成一个有动态效果的二维码。

3. 动态二维码

# 动图如下
# 生成动图二维码version, level, qr_name = myqr.run(words=content.parsed,                   # 上面解析出来的二维码内容
    version=1,                              # 设置容错率为最高
    level='H',                              # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
    picture="penguin.gif",                  # gif图片
    colorized=True,                         # 彩色二维码
    contrast=1.0,                           #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
    brightness=1.0,                         #用来调节图片的亮度,其余用法和取值同上
    save_name="qrcode.gif",                 # 保存文件的名字,格式可以是jpg,png,bmp,gif
    save_dir=os.getcwd()                    #保存位置
)
# 效果如下

参考资料:

https://coolshell.cn/articles/10590.html 二维码的生成细节和原理 

https://github.com/sylnsfar/qrcode

https://github.com/dlenski/python-zxing


数据分析咨询请扫描二维码

客服在线
立即咨询