专栏首页python爬虫实战之路使用Python生成自己的特色二维码

使用Python生成自己的特色二维码

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。

如果我们在进行内容分享的时候,直接发给对方一个二维码或者在自己网站上展示二维码,是不是显得比较有逼格。下面我们就教大家怎么使用Python生成二维码并在网站上进行展示。

我是二维码

安装库 pip install qrcode pip install myqr

qrcode库使用

def gen_qrcode(text):
    # 创建qrcode对象
    qr = qrcode.QRCode(
        version=2,
        error_correction=qrcode.constants.ERROR_CORRECT_Q,
        box_size=10,
        border=2,
    )

    qr.add_data(text)

    # 创建二维码图片
    img = qr.make_image()

    # 图片转换为RGBA格式
    img = img.convert('RGBA')

    # 返回二维码图片的大小
    img_w, img_h = img.size

    # 打开logo
    logo = Image.open(os.path.join(BASE_DIR, 'static/images/logo.jpeg'))

    # logo大小为二维码的四分之一
    logo_w = img_w // 4
    logo_h = img_w // 4

    # 修改logo图片大小
    logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS)

    # 把logo放置在二维码中间
    w = (img_w - logo_w) // 2
    h = (img_h - logo_h) // 2

    img.paste(logo, (w, h))

    qr_path = 'static/imgcard/%s.png' % time.time()
    img.save(os.path.join(BASE_DIR, qr_path))

    return qr_path

参数含义: version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵) error_correction:控制二维码的错误纠正功能。可取值下列4个常量。   ERROR_CORRECT_L:大约7%或更少的错误能被纠正。   ERROR_CORRECT_M(默认):大约15%或更少的错误能被纠正。   ROR_CORRECT_H:大约30%或更少的错误能被纠正。 box_size:控制二维码中每个小格子包含的像素数。 border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)

myqr库使用

from MyQR import myqr
myqr.run(
    words='http://www.baidu.com', # words中填写链接或者文本内容
    version=1,  # 控制二维码大小 1~40,建议不要超过5,否则生成时间太长
    level='H',  # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
    picture='background.gif',  # 背景图片,格式可以是.jpg, .png, .bmp, .gif
    colorized=True,  # 可以使产生的图片由黑白(False)变为彩色(True)的
    contrast=1.0,  # 用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0。
    brightness=1.0,  # 用来调节图片的亮度
)

在Django网站上使用

本文分享自微信公众号 - python爬虫实战之路(small_bud1989),作者:星星o在线

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 起点小说爬取--scrapy/redis/scrapyd

    之前写了一篇网络字体反爬之pyspider爬取起点中文小说 可能有人看了感觉讲的太模糊了,基本上就是一笔带过,一点也不详细。这里要说明一下,上一篇主要是因为有字...

    星星在线
  • python中的函数增强神器functools模块

    functools是一个函数增强器,主要为高阶函数使用,作用于或者返回其他函数的函数,通常任何可调用的对象都可视为“函数”。主要包括以下几个函数:

    星星在线
  • 利用scrapy进行八千万用户数据爬取与优化(一)

    最近准备把数据分析这块补一下,加上一直在听喜马拉雅的直播,有一个比较喜欢的主播,突然萌生了爬取喜马拉雅所有主播信息以及打赏信息,来找一找喜马拉雅上比较火的主播和...

    星星在线
  • C++11:如何判断一个类是另一个模板类的子类?

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • my97DatePicker选择年、季度、月、周、日

    <input id="d1212" class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyy年...

    一笠风雨任生平
  • C++11 POD类型

    POD(Plain Old Data,普通旧数据)类型是从C++11开始引入的概念,Plain代表它是一个普通类型,Old代表它可以与C兼容。通俗的讲,一个类、...

    Dabelv
  • 关于Python turtle库使用时坐标的确定方法

    想画一个比较复杂的图像,而且还想用turtle画,最让人想退却的是无规律的笔势和繁多的坐标,但既然没有按奈住冲动的心,那我告诉你一个比较笨的方法吧。

    砸漏
  • PostgreSQL 嘿,最近的语句有没有慢的,你怎么回答?

    作为一个DB,估计被统计出来的被问及的问题中,语句有没有慢的这句话,估计可以上榜 TOP 10, 而如何回答这个问题,每种数据库有每种数据不同的方法,例如MON...

    AustinDatabases
  • SCP和Rsync远程拷贝的几个技巧

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加...

    洗尽了浮华
  • MFS-移除已用磁盘

    [root@node1 ~]# vim /etc/mfs/mfshdd.cfg #注释要移除磁盘挂载点

    泽阳

扫码关注云+社区

领取腾讯云代金券