资讯专栏INFORMATION COLUMN

Python二维码生成库qrcode示例

Eirunye / 641人阅读

摘要:二维码简称,学名为快速响应矩阵码,是二维条码的一种,由日本的公司于年发明。参数表示生成二维码的尺寸大小,取值范围是至,最小尺寸会生成的二维码,每增加,生成的二维码就会添加尺寸,例如是,则生成的二维码。

二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明。现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询、社交好友互动、网络地址访问等等。

由于生成 qrcode 图片需要依赖 Python 的图像库,所以需要先安装 Python 图像库 PIL(Python Imaging Library),不然会遇到 ImportError: No module named Image的错误。

PNG

From the command line, use the installed qr script:

qr "Some text" > test.png

Example:

import qrcode

qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
qr.add_data("http://zzir.cn/")
qr.make(fit=True)
img = qr.make_image()
img.save("qrcode_demo.png")

参数 version 表示生成二维码的尺寸大小,取值范围是 140,最小尺寸 1 会生成 21 * 21 的二维码,version 每增加 1,生成的二维码就会添加 4 尺寸,例如 version2,则生成 25 * 25 的二维码。

参数 error_correction 指定二维码的容错系数,分别有以下4个系数:

ERROR_CORRECT_L: 7%的字码可被容错

ERROR_CORRECT_M: 15%的字码可被容错

ERROR_CORRECT_Q: 25%的字码可被容错

ERROR_CORRECT_H: 30%的字码可被容错

参数 box_size 表示二维码里每个格子的像素大小。

参数 border 表示边框的格子厚度是多少(默认是4)。

SVG

On Python 2.6 must install lxml since the older xml.etree.ElementTree version can not be used to create SVG images.

You can create the entire SVG or an SVG fragment. When building an entire SVG image, you can use the factory that combines as a path (recommended, and default for the script) or a factory that creates a simple set of rectangles.

From your command line:

qr --factory=svg-path "Some text" > test.svg
qr --factory=svg "Some text" > test.svg
qr --factory=svg-fragment "Some text" > test.svg

Or in Python:

import qrcode
import qrcode.image.svg

if method == "basic":
    # Simple factory, just a set of rects.
    factory = qrcode.image.svg.SvgImage
elif method == "fragment":
    # Fragment factory (also just a set of rects)
    factory = qrcode.image.svg.SvgFragmentImage
else:
    # Combined path factory, fixes white space that may occur when zooming
    factory = qrcode.image.svg.SvgPathImage

img = qrcode.make("Some data here", image_factory=factory)

Two other related factories are available that work the same, but also fill the background of the SVG with white:

qrcode.image.svg.SvgFillImage
qrcode.image.svg.SvgPathFillImage
Pure Python PNG

Install the following two packages:

pip install git+git://github.com/ojii/pymaging.git#egg=pymaging
pip install git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png

From your command line:

qr --factory=pymaging "Some text" > test.png

Or in Python:

import qrcode
from qrcode.image.pure import PymagingImage
img = qrcode.make("Some data here", image_factory=PymagingImage)

参考:https://pypi.python.org/pypi/qrcode/5.1

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37720.html

相关文章

  • 使用 qrcodejs 生成维码的几个问题

    摘要:在这里的用法如下微信中多个二维码在一起识别错误这个问题,我也遇到了,根据网友的提示,微信是截屏识别的,所以会出现这种问题。示例代码这里代码跟前面脱节了,是另外的结构,仅作为示例代码是类似的一些的汇总对象微信中有两个挨着二维码长按识别的问题 博客地址 Preface 产品希望我这边下载页面加个二维码,可以扫描下载 APP,并且希望二维码中有公司的 logo,很合理的需求,不过实现的时候依...

    Lyux 评论0 收藏0
  • 微信小程序中生成维码工具:weapp.qrcode.js

    摘要:前言在近期的小程序开发中,有一个离线生成二维码的需求。所以,针对微信小程序的特点,封装了,用于在小程序中快速生成二维码。由于小程序没有动态创建标签的,所以这一步不能省略。调用绘制方法由于微信小程序不支持引入包,可以将目录下,拷贝至项目中。 前言 在近期的小程序开发中,有一个离线生成二维码的需求。当时想到了一些优秀的前端开源库 jquery-qrcode 和 node-qrcode,由于...

    MarvinZhang 评论0 收藏0
  • 生成海报(前端 | python

    摘要:忙着忙着老大说要生成海报,有个活动要给每个用户来个分享图。虽然我实现了写个页面调用之前生成长截图的服务。使用这段时间以来就是感觉这个编码格式极其难受。网上查也不少前端技术处理我堂堂前端,怎么也得露一手吧。前端处理需要注意跨域空格等问题。 我最近没有摸鱼,一直都在工作。只不过目前需要爬一点数据 python 做的,之后看机会分享一下。 忙着忙着老大说要生成海报,有个活动要给每个用户来个分...

    james 评论0 收藏0
  • 生成海报(前端 | python

    摘要:忙着忙着老大说要生成海报,有个活动要给每个用户来个分享图。虽然我实现了写个页面调用之前生成长截图的服务。使用这段时间以来就是感觉这个编码格式极其难受。网上查也不少前端技术处理我堂堂前端,怎么也得露一手吧。前端处理需要注意跨域空格等问题。 我最近没有摸鱼,一直都在工作。只不过目前需要爬一点数据 python 做的,之后看机会分享一下。 忙着忙着老大说要生成海报,有个活动要给每个用户来个分...

    nevermind 评论0 收藏0
  • 茄子详解 Python qrcode 维码模块

    摘要:声明使用方法参数解释控制二维码的大小,取值范围从到。取最小值时,二维码大小为。控制二维码纠错级别。默认值,大约或者更少的错误会被更正。控制二维码四周留白包含的格子数,默认为。清空数据返回二维码数组。 https://github.com/lincolnloo... 声明 import qrcode 使用 QRCode 方法 qrcode.QRCode( version=1, ...

    woshicixide 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<