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

    文章

    411

    浏览量

    26401
  • python
    +关注

    关注

    56

    文章

    4782

    浏览量

    84449

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

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

收藏 人收藏

    评论

    相关推荐

    二维码的算法?

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

    二维码识别

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

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

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

    二维码在医疗行业中的应用

      二维码应用领域越来越广泛,从人们的日常生活到各个行业的方方面面,随处可见二维码的身影。现在,二维
    发表于 10-13 17:05 1211次阅读

    固定二维码与变动二维码防伪标签的作用

    电子发烧友网站提供《固定二维码与变动二维码防伪标签的作用.docx》资料免费下载
    发表于 05-08 08:00 1次下载

    二维码门禁系统是怎样的工作原理

    安装二维码智能门禁,并不是说直接把传统的门禁给拆除。完全可以在传统门闸机器上嵌入一个二维码门禁读卡器,然后就可以融合二维码自动识别和数据传输性能,之后再根据互联网技术和二维码自动识别技
    发表于 03-19 16:54 5965次阅读

    访客的二维码门禁是否足够安全

    二维码已经成为现代人的一种生活方式,我们使用二维码支付、通行、传输信息。对于访客二维码门禁是否安全的问题?需要从两个维度来说明,二维码识别是否安全?给访客授予进出门禁权限的
    发表于 06-05 10:58 867次阅读

    二维码在智能门禁中的应用,二维码门禁如何保证安全性

    如今二维码已经是一种生活方式,支付、交友、出行、门禁。..。..无处不在,每年我们会消耗二维码超万亿个,100天,腾讯健康量达1400亿个。那问题来了,如此大的用
    的头像 发表于 07-19 10:33 3784次阅读
    <b class='flag-5'>二维码</b>在智能门禁中的应用,<b class='flag-5'>二维码</b>门禁如何保证安全性

    工业二维码是什么,如何使用工业二维码

    工业二维码读取器在智能制造业领域的作用越来越重要,为了让多用户了解工业二维码的相关知识,从而大限度地提高读取率、增加产量和降低成本,让你对工业二维码读取器和工业二维码知识进行面的了解。
    发表于 06-24 17:41 4476次阅读

    读取二维码扫描设备有哪些类型

    读取二维码扫描设备的几种类型中比较简单、常用的便是收银用条码扫描枪,因此它也被称为二维码设备/二维码读取设备/二维码扫描器。据了解,二维码
    发表于 07-06 10:09 4048次阅读

    QR二维码解码流程与使用方法

    二维码、条形码相信大家都非常熟悉了,条码技术已经广泛应用于我们生活当中。微信扫二维码、支付宝二维码付款、商品条形码、超市储物柜条形码等。但是由于二维码复杂度,目前识别
    的头像 发表于 07-22 10:15 1w次阅读

    二维码模组用途广泛 精准高效识别和读取条码、二维码

    二维码模组是一种集成了CMOS感光器件和专用镜头模组的微型扫码头设备,通常采用CMOS红光影像式读取,所发出的是一个矩形的红光区域,旁边会有辅助光,具有图像捕捉功能,通过拍照的方式来识别和读取
    的头像 发表于 03-29 17:12 1206次阅读
    <b class='flag-5'>二维码</b>模组用途广泛 精准高效识别和读取条码、<b class='flag-5'>二维码</b>

    二维码读头有什么功能?如何选择二维码读头?

    二维码读头有什么功能?如何选择二维码读头?二维码读头可以将二维条码图像通过感光头读取、识
    的头像 发表于 03-30 15:03 1786次阅读
    <b class='flag-5'>二维码</b>扫<b class='flag-5'>码</b>读头有什么功能?如何选择<b class='flag-5'>二维码</b>读头?

    如何用Python生成自定义二维码

    的黑白二维码 from MyQr import myqrMyQR.run( 'https://www.python.org/' ,save_name= r"D:demo_png.png" ) 在上面
    的头像 发表于 09-12 17:11 787次阅读
    如何用<b class='flag-5'>Python</b>生成自定义<b class='flag-5'>二维码</b>

    Labview生成二维码

     Labview 的一个Demo,生成二维码
    发表于 08-01 17:12 6次下载