qrcode基础使用

安装

pip3 install qrcode -i https://pypi.douban.com/simple

基础使用

import os

import qrcode



path = os.path.join(os.path.dirname(settings.BASE_DIR), 'scripts', 'a.jpg')
qrcode.make('https://blog.csdn.net/qq_52385631?spm=1010.2135.3001.5421').save(path)

其他案例

import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.dev')

import qrcode


from django.conf import settings

path = os.path.join(os.path.dirname(settings.BASE_DIR), 'scripts', 'a.jpg')
qrcode.make('https://blog.csdn.net/qq_52385631?spm=1010.2135.3001.5421').save(path)

生成带有logo的

参数说明:

version:控制二维码的大小,取值范围从1到40。取最小值1时,二维码大小为21*21。取值为 None (默认)或者使用fit=true参数(默认)时,二维码会自动调整大小。

error_correction:控制二维码纠错级别。

ERROR_CORRECT_L:大约7%或者更少的错误会被更正。

ERROR_CORRECT_M:默认值,大约15%或者更少的错误会被更正。

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

ERROR_CORRECT_H:大约30%或者更少的错误会被更正。

box_size:控制二维码中每个格子的像素数,默认为 10。

border:控制二维码四周留白包含的格子数,默认为4。

image_factory:选择生成图片的形式,默认为 PIL 图像。

mask_pattern:选择生成图片的的掩模。

add_data(str,optimize=20):添加要转换的文字到data参数;如果使用了optimize优化参数,数据将被拆分为多个块来进行优化,以找到一个长度至少为这个值的足够简洁的方式来生成二维码。设置为“0”以避免优化。

make(fit=True):当fit参数为真或者没有给出version参数时,将会调用best_fit方法来找到适合数据的最小尺寸。如果没有设置mask_pattern,将会调用best_mask_pattern方法来找到找到最有效的掩模图案。最后将这些数据传递给makeImpl方法来生成二维码。与qrcode本体的make方法不一样的是,这个方法没有任何返回值。

make_image(fill_color=None, back_color=None,image_factory=None):创建二维码的图像并返回,默认为 PIL 图像。如果要让二维码有颜色,可以在这里设置fill_color, back_color
 

# 带有logo图案的二维码

import os



from PIL import Image
import qrcode



def main(logo_path, save_path):
    # QRCode()这里我们创建了一个对象:
    qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=8, border=4)
    # version:值为1~40的整数,控制二维码的大小(最小值是1,是个21×21的矩阵)
    # error_correction:控制二维码的错误纠正功能。可取值下列4个常量:
    '''
    qrcode.constants.ERROR_CORRECT_X:
        1. X=L时,大约7%或更少的错误能被纠正。 
        2. X=M(默认)时,大约15%或更少的错误能被纠正。
        3. X=Q时,25%以下的错误会被纠正。
        4. X=H时,大约30%或更少的错误能被纠正。
    '''
    # box_size:控制二维码中每个小格子包含的像素数。
    # border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4)

    # 向二维码中添加信息
    qr.add_data("https://blog.csdn.net/qq_52385631?spm=1010.2135.3001.5421")

    qr.make(fit=True)

    img = qr.make_image()
    # 二维码设置为彩色
    img = img.convert('RGBA')
    # 打开logo图片
    logo = Image.open(logo_path)
    # 二维码尺寸
    img_w, img_h = img.size
    # 默认LOGO最大设为图片的1/4
    factor = 4
    # 最大logo尺寸
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    # logo的尺寸
    logo_w, logo_h = logo.size

    if logo_w > size_w or logo_h > size_h:
        logo_w = size_w
        logo_h = size_h
    logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS).convert('RGBA')
    l_w = int((img_w - logo_w) / 2)
    l_h = int((img_h - logo_h) / 2)
    # 替换指定位置
    img.paste(logo, (l_w, l_h), logo)
    img.show()

    img.save(save_path)


main(logo_path='', save_path='')  # 调用main()函数

其他案例

# 带有logo图案的二维码

import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.dev')

from PIL import Image
import qrcode
from django.conf import settings


def main(logo_path, save_path):
    # QRCode()这里我们创建了一个对象:
    qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=8, border=4)
    # version:值为1~40的整数,控制二维码的大小(最小值是1,是个21×21的矩阵)
    # error_correction:控制二维码的错误纠正功能。可取值下列4个常量:
    '''
    qrcode.constants.ERROR_CORRECT_X:
        1. X=L时,大约7%或更少的错误能被纠正。 
        2. X=M(默认)时,大约15%或更少的错误能被纠正。
        3. X=Q时,25%以下的错误会被纠正。
        4. X=H时,大约30%或更少的错误能被纠正。
    '''
    # box_size:控制二维码中每个小格子包含的像素数。
    # border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4)

    # 向二维码中添加信息
    qr.add_data("https://blog.csdn.net/qq_52385631?spm=1010.2135.3001.5421")

    qr.make(fit=True)

    img = qr.make_image()
    # 二维码设置为彩色
    img = img.convert('RGBA')
    # 打开logo图片
    logo = Image.open(logo_path)
    # 二维码尺寸
    img_w, img_h = img.size
    # 默认LOGO最大设为图片的1/4
    factor = 4
    # 最大logo尺寸
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    # logo的尺寸
    logo_w, logo_h = logo.size

    if logo_w > size_w or logo_h > size_h:
        logo_w = size_w
        logo_h = size_h
    logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS).convert('RGBA')
    l_w = int((img_w - logo_w) / 2)
    l_h = int((img_h - logo_h) / 2)
    # 替换指定位置
    img.paste(logo, (l_w, l_h), logo)
    img.show()

    img.save(save_path)


logo_path = r'D:\luffy\luffy_api\scripts\img\3.jpg'
save_path = os.path.join(os.path.dirname(settings.BASE_DIR), 'scripts', 'a.jpg')
main(logo_path=logo_path, save_path=save_path)  # 调用main()函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
pb9 qrcode是指在PB9上生成和解码二维码的过程。PB9是一种标准的二维码生成和解码算法,通常用于在移动设备上生成和解码二维码。 生成二维码的过程包括以下几个步骤: 1. 输入内容:用户在移动设备上输入需要生成的二维码内容,可以是网址、文本、联系人信息等。 2. 编码数据:使用PB9算法将输入的内容编码成二维码所需的数据。 3. 绘制二维码:根据编码的数据,使用适当的算法在移动设备的屏幕上绘制出二维码图像。 解码二维码的过程包括以下几个步骤: 1. 捕捉图像:用户使用移动设备的摄像头将包含二维码的图像捕捉下来。 2. 解析图像:使用PB9算法对捕捉到的图像进行解析,提取出二维码的数据。 3. 解码数据:根据解析得到的数据,对二维码中的内容进行解码,恢复出原始输入的数据。 在生成和解码二维码的过程中,PB9算法具有以下优点: 1. 算法简单高效:PB9算法的复杂度较低,生成和解码速度快。 2. 误差容忍性强:PB9算法对于图像质量的要求较低,即使在图像质量不佳的情况下也能够正常生成和解码二维码。 3. 适用范围广泛:PB9算法支持生成和解码各种类型的二维码,可以满足不同应用场景下的需求。 因此,PB9 qrcode是指在PB9算法的基础上进行二维码生成和解码的过程,具有快速、准确、适用性强等特点,广泛应用于移动设备中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑猪去兜风z1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值