快速生成二维码——Python QRCode库详解

🍀 前言

博客地址:

👋 简介

QRCode码是由日本于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点。QRCode模块是Github上的一个开源项目,提供了生成二维码的接口,QRCode默认使用PIL库用于生成图像。

📖 正文

1 QRCode安装

pip install qrcode -i https://pypi.tuna.tsinghua.edu.cn/simple

2 参数介绍

QRCode的参数

version整数,范围为1到40,表示二维码的大小(最小值是1,是个12×12的矩阵),如果想让程序自动生成,将值设置为 None 并使用 fit=True 参数即可。
error_correction二维码的纠错范围
ERROR_CORRECT_L 7%以下的错误会被纠正
ERROR_CORRECT_M 15%以下的错误会被纠正
ERROR_CORRECT_Q 25 %以下的错误会被纠正
ERROR_CORRECT_H 30%以下的错误会被纠正
box_size每个点(方块)中的像素个数
border二维码距图像外围边框距离,默认为4,而且相关规定最小为4

3 二维码生成

步骤:

  • 创建QRCode对象
  • add_data()添加要生成二维码的数据
  • make_image()创建二维码
  • 打开或者保存二维码图片
import qrcode

data = 'https://www.baidu.com/'
img_file = r'code.png'
# 实例化QRCode生成qr对象
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4
)
# 传入数据
qr.add_data(data)
qr.make(fit=True)
# 生成二维码
img = qr.make_image()
# 保存二维码
img.save(img_file)
# 展示二维码
img.show()

4 工具封装

4.1 生成普通二维码
import qrcode


def get_qr_code_image(source: str, data: str) -> None:
    """
    生成二维码
    :param source: 保存路径
    :param data: 数据
    :return:
    """
    if not os.path.exists(source):
        os.makedirs(source)
    qr = qrcode.QRCode(
        version=2,  # 尺寸
        error_correction=qrcode.constants.ERROR_CORRECT_H,  # 容错信息当前为 30% 容错
        box_size=10,  # 每个格子的像素大小
        border=4  # 边框格子宽度
    )  # 设置二维码的大小
    try:
        qr.add_data(data)
        # 生成二维码图片,fill_color二维码颜色,back_color二维码背景颜色
        img = qr.make_image(fill_color='green', back_color="white")
        # 用时间戳命名文件
        filename = str(time.time()).split('.')[0] + '.png'
        file = os.path.join(source, filename)
        img.save(file)
        print(f"二维码{filename}生成成功")
    except Exception as e:
        print(f"生成失败:{e}")


if __name__ == '__main__':
    source_path = r'code_img'
    data = 'https://blog.csdn.net/powerbiubiu'
    get_qr_code_image(source_path, data)

以下为生成的二维码图片
1705835116.png

4.2 生成带头像的二维码

加载logo图片需要用PIL库,所以需要安装
pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple

from PIL import Image
import qrcode

def get_qr_code_image_by_logo(source: str, data: str) -> None:
    """
    生成二维码
    :param source: 保存路径
    :param data: 数据
    :return:
    """
    if not os.path.exists(source):
        os.makedirs(source)
    qr = qrcode.QRCode(
        version=2,  # 尺寸
        error_correction=qrcode.constants.ERROR_CORRECT_H,  # 容错信息当前为 30% 容错
        box_size=10,  # 每个格子的像素大小
        border=4  # 边框格子宽度
    )  # 设置二维码的大小
    try:
        qr.add_data(data)
        # 生成二维码图片,fill_color二维码颜色,back_color二维码背景颜色
        img = qr.make_image(fill_color='green', back_color="white")
        # 用时间戳命名文件
        filename = str(time.time()).split('.')[0] + '.png'
        file = os.path.join(source, filename)
        # 添加logo,打开logo照片
        icon = Image.open("code_img/1.jpg")
        # 获取图片的宽高
        img_w, img_h = img.size
        # 参数设置logo的大小
        factor = 5
        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))
        # 得到画图的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(file)
        print(f"二维码{filename}生成成功")
    except Exception as e:
        print(f"生成失败:{e}")


if __name__ == '__main__':
    source_path = r'code_img'
    data = 'https://blog.csdn.net/powerbiubiu'
    get_qr_code_image_by_logo(source_path, data)

以下为生成的二维码图片
1705835508.png

💖 欢迎关注我的公众号

在这里插入图片描述

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Pythonqrcode 生成二维码。首先需要安装 qrcode ,可以使用 pip 命令进行安装: ``` pip install qrcode ``` 然后可以使用以下代码来生成二维码: ```python import qrcode qr = qrcode.QRCode( version=1, box_size=10, border=5 ) data = "https://www.example.com" qr.add_data(data) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") img.save("qrcode.png") ``` 这样就能在当前目录下生成一个名为 qrcode.png 的二维码图片. ### 回答2: Python是一种功能强大的编程语言,经常用来开发各种应用程序。Python有许多和模块可以用来生成二维码。其中一个流行的qrcode。它提供了一种简单的方法来生成QR码。 生成QR码非常简单,只需要在Python中安装qrcode并使用以下代码即可: ``` import qrcode img = qrcode.make('hello') img.save('hello.png') ``` 上述代码创建了一个包含“hello”字符串的QR码,并将其保存到名为“hello.png”的文件中。 除了基本的QR码之外,qrcode还支持其他选项,例如自定义QR码大小和颜色,添加图像和LOGO等。例如,下面的代码生成了一个红色的QR码,并将一个LOGO添加到它的中心: ``` import qrcode img = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_Q, box_size=10, border=4, ) img.add_data('hello') img.make(fit=True) # 添加logo icon = Image.open('logo.png') img_size = img.get_matrix().width icon_size = int(img_size / 4) icon = icon.resize((icon_size, icon_size), Image.ANTIALIAS) w, h = icon.size x, y = int((img_size - w) / 2), int((img_size - h) / 2) img.paste(icon, (x, y)) img = img.make_image(fill_color="red", back_color="white") img.save('hello.png') ``` 总之,使用Pythonqrcode是一种快速,简单和灵活生成QR码的方法。它提供了多种选项,使用户能够轻松为QR码添加颜色,图像或LOGO等自定义内容。 ### 回答3: Python是一种通用编程语言,可用于处理各种常见的编程问题。在Python中,我们可以使用第三方生成二维码。其中最常用的是qrcode,它可以用来创建并输出QR code。 首先,我们需要使用pip来安装qrcode。在命令行界面中输入以下命令即可: pip install qrcode 一旦qrcode安装完成,我们就可以使用Python生成二维码了。下面是一个基本的代码段,可以用于生成一个最简单的二维码: ``` import qrcode img = qrcode.make('https://www.example.com/') img.show() ``` 在这个例子中,我们首先导入了qrcode。接着,我们定义了一个字符串变量,它包含了将要生成的二维码所代表的URL。然后,我们使用make()函数来生成QR code,然后用show()方法来输出它。这个QR code会在一个新的窗口中显示出来。 在这个基础上,我们可以根据需要进行定制,以实现更专业的QR code生成。例如,我们可以使用size选项来指定二维码的尺寸,使用color选项来指定二维码的颜色,使用box_size选项来指定QR code中的方块大小等等。 在Python中使用qrcode生成QR code非常容易,即使是对于初学者也是如此。有了它,你可以轻松地在Python中生成高品质、高精度的QR code。不仅如此,qrcode还有非常好的文档和例子。因此,即使你是一个新手,你也能很快地开始使用它来生成二维码

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值