二维码满天飞,

随便扫一扫就能扫到不一样的内容。

有没有好奇什么是二维码?

又是怎么生成的呢?

今天我们就用python 5行代码 生成一个二维码,并且是个性的二维码,想你所想的,先看效果图,准备好微信扫一扫,看看扫到什么惊喜呢?

普通的二维码

是不是有一点单调,虽然可以修改其颜色

修改颜色和大小

带有背景图的二维码

背景图二维码是不是更容易宣传自己的产品呢?

背景图片可以是任意的图片。

动图二维码

看到这样的二维码

是不是特别想扫一扫呢?

Python代码实现

Python中有一个专门生成二维码的库,叫MyQR. 安装非常简单,直接使用pip安装。如果使用的是Python三剑客(扫码上面加入了解),直接点击按钮安装即可

pip install MyQR

安装完成以后直接倒入即可,如下代码。

from MyQR import myqr

然后使用库中的run方法生成二维码,代码如下。也可以扫码加入,手把手教你如何生成个性二维码。

#普通的二维码
myqr.run(
    words,
    save_name= '普通的二维码.png'
)

#带图片
myqr.run(
    words,
    picture = 'xxx/logo2.png',
    colorized = True,
    save_name = 'logon_Python.png'
)

#动图
myqr.run(
    words, #需要生成的二维码网址链接
    picture="xxx/logo/dongtu.gif",  #动态图
    colorized=True, #彩色的还是黑白的
    save_name='Python2.gif', #保存为.gif格式否则不是动图
)

什么是二维码?

二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。

因此,在转换的过程中,离不开编码压缩方式。在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等。

二维码在现实生活中的应用越来与普遍,归于功于 QR code 码制的流行。我们常说的二维码就是它。所以,二维码又被称为 QR code。

QR code 是一种矩阵式二维条码(又称棋盘式二维条码)。它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义

二维码结构

我们的目的是要使用 Python 生成 QR 码,那我们需要先了解二维码(QR 码)的结构。根据标准(ISO/IEC 18004),我们可以了解到 QR 码结构如下:


1) 功能图形
功能图形是不参与编码数据的区域。它包含空白区位置探测图形位置探测图形分隔符定位图形校正图形五大模块。

  • 空白区

空白区顾名思义就是要留空白。因此,这里不能有任何图样或标记。这样才能保证 QR 能被识别。

  • 位置探测图形

这个有点类似中文的“回”字。在 QR 码中有个这样的标识,它分别的左上、右上和左下角。作用是协助扫描软件定位 QR 码并转换坐标系。我们在扫描二维码的时候,不管是竖着扫、横着扫、斜着扫都能识别出内容,主要是它的功劳。

  • 位置探测图形分隔符

主要作用是区分功能图形和编码区域。

  • 定位图形

它由黑白间隔的各自各自组成的线条。主要用于指示标识密度和确定坐标系。原因是 QR 码一种有 40 个版本,也就是说有 40 种尺寸。每种二维码的尺寸越大,扫描的距离就越远。

  • 校正图形

只有 Version 2 及以上的QR码有校正标识。校正标识用于进一步校正坐标系。

2) 编码区域
编码区域是数据进行编码存储的区域。它由格式信息版本信息数据和纠错码字三部分构成。

  • 格式信息

所有尺寸的二维码都有该信息。它存放一些格式化数据的信息,例如容错级别、数据掩码,和额外的自身 BCH 容错码。

  • 版本信息

版本信息是规定二维码的规格。前面讲到 QR 码一共有 40 种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本 每边增加4个模块。

  • 数据和纠错码

主要是存储实际数据以及用于纠错码字。

二维码绘制过程

二维码已经是有一套国际标准,绘制二维码过程的严格按照标准来执行。这个过程是比较复杂,我自己也是看了大概,然后总结出大致绘制过程。如果你想深入了解绘制细节,可以阅读标准。

二维码的绘制大概过程如下:
1)在二维码的左上角、左下角、右上角绘制位置探测图形。位置探测图形一定是一个 7x7 的矩阵。
2)绘制校正图形。校正图形一定是一个 5x5 的矩阵。
3)绘制两条连接三个位置探测图形定位图形
4)在上述图片的基础上,继续绘制格式信息
5)接着绘制版本信息
6)填充数据码纠错码到二维码图中。
7)最后是绘制蒙版图案。因为按照上述方式填充内容,可能会出现大面积的空白或黑块的情况,导致扫描识别会十分困难。所以需要对整个图像与蒙版进行蒙版操作(Masking),蒙版操作即为异或 XOR 操作。在这一步,我们可以将数据排列成各种图片。

更多python实战内容,推荐一个Python实战圈。提供清晰的多系统学习路径、快速学习运用python的圈子,圈主是世界500强高级软件工程师,多年编码经验。具体可以提供以下内容:

【基础】0基础入门python,24小时有人快速解答问题;

【提高】40多个项目实战,老手可以从真实场景中学习python;

【直播】不定期直播项目案例讲解,手把手教你如何分析项目;

【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。

【人脉】收获一群志同道合的朋友,并且都是python从业者

【价格】只需 70元 加入能保证学习效果圈子。

想不想扫一下这位美女?

Python 5行代码生成个性二维码,要不要试一下?相关推荐

  1. 请用python代码表示什么_深度解析什么是二维码?用Python 5行代码生成个性二维码...

    二维码满天飞, 随便扫一扫就能扫到不一样的内容. 有没有好奇什么是二维码? 又是怎么生成的呢? 今天我们就用python 5行代码 生成一个二维码,并且是个性的二维码,想你所想的,先看效果图,准备好微 ...

  2. Python小项目——生成个性二维码

    Python小项目--生成个性二维码 现代社交离不开微信,QQ,那么今天就教你用 Python 生成自己的个性二维码

  3. python自制简易二维码代码_python5行代码生成特色二维码

    python的myqr库有生成二维码的功能,仅仅用几行代码就可以实现特色二维码,快来试试吧! 首先需要安装myqr库 win+R 打开命令行 pip install myqr 2.安装完毕之后就可以快 ...

  4. Python,2行代码生成动态二维码,赶紧收藏!!

    大家好,我是辰哥~ 今天给大家分享两个制作二维码的Python库,可以生成普通的二维码.图片背景版二维码.动图GIF版二维. 第一个库:MyQR 安装 pip install MyQR 普通的二维码制 ...

  5. python myqr制作二维码生成器_用Python生成动态二维码,只要5行代码,拥有你的个性二维码!...

    原标题:用Python生成动态二维码,只要5行代码,拥有你的个性二维码! 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. P ...

  6. 用Python生成动态二维码,只要5行代码,拥有你的个性二维码!

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 ...

  7. python二维码加动态图_用python自制个性二维码(设置带LOGO的二维码带动图)

    本文使用的是 python3.6 MyQR库 tkinter库 我们可以使用MyQR这个库 安装方式如下: 进入命令行输入: pip3 install MyQR 如果安装不成功多半是网络有问题,可以去 ...

  8. 手把手教你用Python打造一款属于你自己的个性二维码

    击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 今夜闻君琵琶语,如听仙乐耳暂明. / ...

  9. [273]python生成个性二维码

    更多精选文章,请关注公众号:python前行者 现在,我们生活中到处可以看到二维码.它有啥好处呢?它具有信息容量大.可靠性高.可表示汉字及图象多种文字信息.保密防伪性强等优点. 我们生成的东西一般都在 ...

最新文章

  1. 注意,免费的 CentOS 落幕,将于本月底终止维护!
  2. HDFS-常用API操作
  3. 计算机cmd shutdown,cmd里面shutdown命令的原因是什么?什么时候显示的?
  4. SpringMVC拦截器2(资源和权限管理)(作为补充说明)
  5. ModuleNotFoundError: No module named 'win32api'
  6. 【Python】Python随机数random模块的应用
  7. python 获取点击按钮名称_python如何获取tkinter组件的名称?比如按下多个Button中的一个,返回这个被按下的Button的text?...
  8. Azure Data Studio:Postgres 专用的超强开源 GUI 编辑器了解一下?
  9. 使用jQuery获取表格内容、:nth-child() 选择器用法
  10. 「Mac新手操作」:使用力度触控板进行“用力点按”的方法
  11. html5在线聊天模板,h5聊天室模板|仿微信聊天室html5
  12. MyEclipse字体和保护色设置
  13. MySQL一些随机函数记录
  14. 历史上的移民运动与宁夏地域文化【宁夏地域文化中的移民因素】
  15. Android7.0 PowerManagerService(4) Power按键流程
  16. Ruby_01_环境安装
  17. 浏览器HTTP_USER_AGENT汇总——Firefox、Chrome、IE9、IE8、IE7、IE6
  18. yii2 gii生成curd
  19. java metronic_metronic下载-metronic官方版 v4.5.2 官方版[百度网盘资源] - 安下载
  20. 中国人工智能学会通讯——人类作为“情感机器”——效用函数、情绪和社会偏好 1.4 结 论...

热门文章

  1. JavaScript学习9
  2. 分配问题(最小费用最大流)
  3. VMware Workstation 9上安装MAC OS X Lion 10.8图解
  4. 安装Windows补丁KB947821报错0x8007000d The data is invalid
  5. 我是如何从 0 到 1 在 Google Play 上有稳定收入的?
  6. MS SQL 2012表分区
  7. 1.模拟※(0x3f:从周赛中学算法 2022下)
  8. 残差网络ResNet解读
  9. 对计算机等级考试成绩有异议能申请复查吗?怎么申请?
  10. 三星Note3使用技巧之S搜索功能如何使用