前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3生成带 logo 的二维码

python3生成带 logo 的二维码

作者头像
wencheng
发布2020-07-16 18:56:51
1.2K0
发布2020-07-16 18:56:51
举报
文章被收录于专栏:python 自动化测试

前言

二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明。现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询、社交好友互动、网络地址访问等等。

安装qrcode库

命令:

pip install qrcode

pip install PIL

简单的实例

代码语言:javascript
复制
import qrcode
img = qrcode.make('wencheng')
img.save('test.jpg')

执行以上代码会生成test.jpg ,扫码后会输出wencheng

扫码结果:

复杂的例子

代码语言:javascript
复制
import qrcode
from PIL import Image

def get_qrcode_image():
    text = 'https://www.zhihu.com/people/hewencheng-89/posts'
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=5,
        border=4,
    )

    # 添加数据
    qr.add_data(text)
    # 填充数据
    qr.make(fit=True)
    # 生成图片
    img = qr.make_image(fill_color="#009696", back_color="white")
    # 添加logo,打开logo照片
    icon = Image.open('test.jpg')
    # 获取图片的宽高
    img_w, img_h = img.size
    # 参数设置logo的大小
    factor = 6
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    icon_w, icon_h = icon.size
    if icon_w > size_w:
        icon_w = size_w
    if icon_h > size_h:
        icon_h = size_h
    # 重新设置logo的尺寸
    icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
    # 得到画图的x,y坐标,居中显示
    w = int((img_w - icon_w) / 2)
    h = int((img_h - icon_h) / 2)
    # 黏贴logo照
    img.paste(icon, (w, h), mask=None)
    # img.save(fpath)
    img.show()
    return img

get_qrcode_image()

执行以上代码会show出带颜色的二维码,二维码中间镶嵌了图片并且扫码二维码后会跳转到配置的地址 text = 'https://www.zhihu.com/people/hewencheng-89/posts'。

扫码结果:

方法介绍:

添加数据 :qr.add_data(text)

填充数据:qr.make(fit=True)

生成图片:img = qr.make_image(fill_color="#009696", back_color="white")

添加logo,打开logo照片:icon = Image.open('test.jpg')

黏贴logo照:img.paste(icon, (w, h), mask=None)

浏览:img.show()

保存:img.save(fpath)

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试 To share 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 安装qrcode库
  • 复杂的例子
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档