0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python图和处理二维码?

马哥Linux运维 来源:未知 作者:李倩 2018-07-25 17:11 次阅读

声明

import qrcode

使用

QRCode 方法

qrcode.QRCode(

version=1,

error_correction=qrcode.ERROR_CORRECT_L,

box_size=10,

border=4,

image_factory=None,

mask_pattern=None)

参数解释

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

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

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

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

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

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

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

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

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

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

方法属性解释

常用方法:

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

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

3、makeimage(fillcolor=None, backcolor=None,imagefactory=None):创建二维码的图像并返回,默认为 PIL 图像。如果要让二维码有颜色,可以在这里设置。

4、clear:清空数据

5、get_matrix:返回二维码数组。

6、print_ascii(out=None, tty=False, invert=False):这个方法就比较有趣了,可以用字符画的形式来输出二维码,但是扫的时候一般都扫不出来。

其中的invert参数是决定是否反转颜色的参数,默认为假,如果为真的话会这样:

其他方法:

1、bestfit(start=self.version):找到适合数据所需的最小尺寸。

2、bestmaskpattern():找到最有效的掩模图案。

3、makeImpl(test, maskpattern):生成二维码的直接函数

4、mapdata:(内部函数,无需了解)

5、printtty(out=None):用TTY颜色输出二维码,如果没有给出out参数,会使用sys.stdout。

6、setuppositionadjustpattern:(内部函数)

7、setuppositionprobepattern:(内部函数)

8、setuptimingpattern:(内部函数)

9、setuptypeinfo:(内部函数)

10、setuptypenumber:(内部函数)

属性:

1、border:

2、boxsize:

3、datacache:

4、datalist:

5、errorcorrection:

6、imagefactory:

7、maskpattern:

8、modules:

9、modules_count:

10、version:

生成 SVG 图像

qrcode可以生成三种不同的svg图像,一种是用路径表示的svg,一种是用矩形集合表示的完整svg文件,还有一种是用矩形集合表示的svg片段。第一种用路径表示的svg其实就是矢量图,可以在图像放大的时候可以保持图片质量,而另外两种可能会在格子之间出现空隙。

这三种分别对应了svg.py中的SvgPathImage、SvgImage和SvgFragmentImage类。在调用qrcode.make函数或者实例化QRCode时当作image_factory参数的值传入就可以了。

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)

生成 PNG 图像

执行命令安装pymaging相关模块:

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

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

然后给image_factor参数传入qrcode.image.pure.PymagingImage就可以生成PNG图片了。

import qrcode from qrcode.image.pure

importPymagingImage

img = qrcode.make('Some data here', image_factory=PymagingImage)

这是作者推荐的方式,但是我个人认为,完全没有必要这么麻烦,直接用默认的 PIL 就可以获取 PNG 图片了,例子看下文。

make 方法

make方法实际上就是在内部调用了QRCode(要转换的文本).make_image(),最后(默认)返回了一个PIL图像对象。

# 显示图片qrcode.make("hello world!").show()

# 保存 PNG 图片qrcode.make("hello world!").save('hello.png')

run_example 方法

生成一个作者项目网站地址的二维码并显示出来。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二维码
    +关注

    关注

    7

    文章

    371

    浏览量

    26077
  • python
    +关注

    关注

    51

    文章

    4666

    浏览量

    83433

原文标题:详解 Python qrcode 二维码模块

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Labview调用Halcon识别二维码

    *附件:Labview调用Halcon识别二维码.zip Labview调用Halcon识别二维码 可一次识别多个二维码 使用Labview 2020编辑,halcon的版本是 19.11,32位
    发表于 02-21 16:31

    分享一款二维码扫描软件

    【芝麻客】二维码扫描软件下载功能详细介绍 如果你已经下载了芝麻客二维码扫描软件你可以跳过以下环节,假如你的手机已经安装了二维码扫描软件,请扫描以此二维码 点击扫描链接下载芝麻客,
    发表于 11-13 14:36

    二维码

    我现在正在做一个二维码的解读器,有做过这个和正在做的吗?希望能一起交流 qq:1459884266
    发表于 11-30 10:48

    二维码的算法?

    想用51做一个能将简单数字生成二维码图片在LED彩屏显示。问一下二维码的算法?51单片机能处理吗?请教高手了。
    发表于 03-30 20:14

    二维码识别

    `利用笔记本电脑的摄像头采集二维码图像并识别,显示二维码的信息!下载了labview视觉与运动模块的可以下来看看!里面有2张二维码,用二维码生成器做的(百度应用),用手机拍
    发表于 08-27 16:52

    二维码

    `想通过labview与QR相结合产生二维码,有没有做过的,分享分享经验啦`
    发表于 05-30 17:04

    基于STM32的二维码识别源码+二维码解码库lib

    该设计基于STM32F429+OV5642实现二维码识别功能。解码库被打包成lib了。
    发表于 12-27 10:57

    二维码识别

    二维码识别
    发表于 08-28 14:09

    生成二维码

    生成二维码
    发表于 11-11 14:28

    QR二维码识别

    QR二维码识别
    发表于 11-11 14:31

    识别二维码成功率不高的问题

    请教一下论坛里的大神们一个图像处理的问题,用镜头识别二维码,我用的是视觉与运动里vision express 但是实际使用的时候发现如果镜头稍微有一点角度,扫面出来的二维码识别成功率就会很低,请问怎么
    发表于 05-05 12:34

    如何利用Python中的tkinter和MyQR制作个性二维码转换器

    利用Python中的tkinter和MyQR制作个性二维码转换器
    发表于 06-18 06:17

    二维码软件中制作Dot Code二维码的步骤

      在二维码软件中,点击软件左侧的“二维码”按钮,在画布上绘制二维码样式,双击二维码,在图形属性-条码选项卡中,设置条码类型为Dot Code。    在选项卡中,点击“修改”按钮,删
    发表于 12-02 15:45

    单片机显示二维码的原理及实现

    单片机显示二维码的原理及实现一、二维码是什么?二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个
    发表于 02-23 06:38

    OpenHarmony应用实现二维码识别

    。 ​​橘子购物示例应用​​扫描二维码的示例: 配置文件 了解了二维码相关的概念后,我们看下​​橘子购物示例应用​​的oh-package.json5配置文件。 在​​橘子购物示例应用​​中,实现
    发表于 08-23 17:00