python的qrcode模块计算矩阵二维码像素尺寸大小

利用qrcode可以非常方便生成二维码,网上介绍也很多了。自己使用过程中发现二维码尺寸不固定,后来发现和携带内容多少有关系,如何计算二维码像素大小?

    qr = qrcode.QRCode(
        version=10,
        error_correction=qrcode.constants.ERROR_CORRECT_Q,
        box_size=8,
        border=4
    )
上面函数参数含义:
version:值为1~40的整数,控制二维码的模块数量(最小值是1,是个21×21的矩阵,每个版本差值为4)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。

error_correction:控制二维码的错误纠正功能。可取值下列4个常量。

                ERROR_CORRECT_L:大约7%或更少的错误能被纠正。

                ERROR_CORRECT_M(默认):大约15%或更少的错误能被纠正。

                ERRORCORRECTQ:大约25%或者更少的错误会被更正。

                ROR_CORRECT_H:大约30%或更少的错误能被纠正。

box_size:控制二维码中每个模块包含的像素数。

border:控制边框(二维码与图片边界的距离)包含的模块数(默认为4,是相关标准规定的最小值)

 

以上参数解释,网上很多,上面参数解释是从别处摘抄来的。

个人理解,二维码像素尺寸可以通过version、box_size和border三个参数来计算。

       1、version控制了二维码中模块的数量,比如version=10,每边的数量是(21 + (10-1)*4)=57,就是57×57的矩阵。

       2、边距是以模块数量为单位,比如border=4就是表示4个模块。

       3、box_size表示每个模块的像素数,“每边模块数” × box_size 就是二维码的像素尺寸了。公式如下:

(21 + (version - 1) * 4 + border * 2) * box_size

例如version=10,box_size=8,border=4,那么二维码像素尺寸为520*520,计算过程如下:

(21+(10-1)*4+4*2)*8 = 520

如果version设置小于要携带的内容,那么qrcode会自动增大version。如果version固定想携带更多内容就要修改error_correction值,减小冗余。

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值