当前位置: 首页 > 工具软件 > python-qrcode > 使用案例 >

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

呼延明朗
2023-12-01

利用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值,减小冗余。

 

 

 类似资料: