如何在Python中创建QR Code图像或SVG

本文概述

  • 1.安装所需的库
  • 2.创建二维码作为图像
  • 3.将QRCode创建为SVG
快速响应(QR)代码是一种二维象形代码, 由于其快速的可读性和相对大的存储容量而被使用。该代码由在白色背景上以正方形图案排列的黑色模块组成。如果你使用的是Python, 并且需要快速创建QR代码, 我们将向你展示如何使用qrcode库在几秒钟内实现这一目标。
1.安装所需的库你需要在Python中添加的第一个库是Pillow。 Python Imaging Library是Python编程语言的免费库, 它在新版本中也被称为PIL或在新版本中被称为Pillow, 它是Python编程语言的免费库, 它增加了对打开, 操作和保存许多不同图像文件格式的支持。它适用于Windows, Mac OS X和Linux。要创建QR Code, 我们将使用依赖枕头的qrcode库
你可以在终端中执行以下命令来安装此模块:
REM Required to work with imagespip install Pillow

一旦完成Pillow的安装, 你就可以继续安装QR生成器库:
REM install library to generate QR Codespip install qrcode

否则, 在没有Pillow的情况下, 使用QR Code库创建图像时会出现错误消息” ImportError:没有名为Image的模块” 。有关枕头或二维码的更多信息, 请访问其主页。
2.创建二维码作为图像创建QR码所需编写的代码非常容易理解, 非常简单。首先导入qrcode库并使用其中的QRCode方法, 然后根据需要提供参数
# Import QR Code libraryimport qrcode# Create qr code instanceqr = qrcode.QRCode(version = 1, error_correction = qrcode.constants.ERROR_CORRECT_H, box_size = 10, border = 4, )# The data that you want to storedata = "http://www.srcmini.com/The Data that you need to store in the QR Code"# Add dataqr.add_data(data)qr.make(fit=True)# Create an image from the QR Code instanceimg = qr.make_image()# Save it somewhere, change the extension as needed:# img.save("image.png")# img.save("image.bmp")# img.save("image.jpeg")img.save("image.jpg")

错误修正
QR代码具有纠错功能, 可以在代码损坏或变脏时恢复数据。该库提供四个错误纠正级别, 它们存储在qrcode.constants对象中:
  • ERROR_CORRECT_L:可以纠正大约7%或更少的错误。
  • ERROR_CORRECT_M :(默认)可以纠正大约15%或更少的错误。
  • ERROR_CORRECT_Q:可以纠正大约25%或更少的错误。
  • ERROR_CORRECT_H:可以纠正大约30%或更少的错误。
在创建QR代码期间, 应将它们提供为error_correction属性的值。
QR码大小
你可以使用box_size属性更改生成的QR码的大小。
3.将QRCode创建为SVG如果你愿意生成QRCode的SVG文件而不是图像, 则还需要安装lxml库, 因为较早的xml.etree.ElementTree版本不能用于创建SVG图像。 lxml是XML工具包, 是C库libxml2和libxslt的Pythonic绑定。它的独特之处在于它将这些库的速度和XML功能的完整性与本机Python API的简单性结合在一起, 该Python API大多数都兼容, 但优于众所周知的ElementTree API。
要使用pip安装此模块, 请在终端中运行以下命令:
pip install lxml

安装后, 你将能够为将要生成的SVG文件生成ElementTree。 SVG的生成方法可以根据你的需求而有所不同, 该库提供了三种类型的SVG, 即SVG图像, 使用片段或路径:
import qrcodeimport qrcode.image.svg# define a method to choose which factory metho to use# possible values 'basic' 'fragment' 'path'method = "basic"data = "http://www.srcmini.com/Some text that you want to store in the qrcode"if method == 'basic':# Simple factory, just a set of rects.factory = qrcode.image.svg.SvgImageelif method == 'fragment':# Fragment factory (also just a set of rects)factory = qrcode.image.svg.SvgFragmentImageelif method == 'path':# Combined path factory, fixes white space that may occur when zoomingfactory = qrcode.image.svg.SvgPathImage# Set data to qrcodeimg = qrcode.make(data, image_factory = factory)# Save svg file somewhereimg.save("qrcode.svg")

【如何在Python中创建QR Code图像或SVG】编码愉快!

    推荐阅读