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 zxing

from MyQR import myqr

import 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

欢迎关注我的公众号“Python的乐趣”,原创技术文章第一时间推送。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值