随处可见的二维码是怎么生成的?自己做一个试试吧。

随着互联网和智能移动设备不断普及,二维码(Quick Response code)已经成为世界上应用最为广泛的信息载体之一。生成二维码的工具也层出不穷,但多数需要在线完成,并且生成的图案也千篇一律,过于单调。

那么有没有办法实现自定义生成二维码呢?

近日,一位热衷于终身学习的工程师兼摄影师 Arindom Bhattacharjee 撰写了一篇自定义生成二维码的方法,并且整个生成过程只需要 5 行 Python 代码即可完成。感兴趣的读者可以自己实现下。

5 行 Python 代码自定义生成二维码

二维码(QR Code)由白色背景上的黑色网格方块组成。由于它能存储更多信息,并且具有快速可读性,因此比条形码更受欢迎。

Python 提供了一个可以轻松实现这样的功能的 qrcode 包,首先就从下载 Python 包开始:

pip install pillow
pip install qrcode

然后创建一个存储之前文章页面链接(https://towardsdatascience.com/face-detection-in-10-lines-for-beginners-1787aa1d9127)的二维码,来看下实现过程有多简单:

import qrcode# Link for website
input_data = "https://towardsdatascience.com/face-detection-in-10-lines-for-beginners-1787aa1d9127"#Creating an instance of qrcode
qr = qrcode.QRCode(version=1,box_size=10,border=5)qr.add_data(input_data)
qr.make(fit=True)img = qr.make_image(fill='black', back_color='white')
img.save('qrcode001.png')

这样,只需要简单的几步,就创建了可以链接到之前文章的二维码

通过微信扫一扫,就可以链接到之前的文章:


使用到的具体参数

在具体的实现过程中,以上代码中的 QRCode 函数需要以下参数:

  • version:定义了生成二维码的尺寸,它的取值范围是 1 到 40 的整数。该参数的值越大,生成的二维码图像就越大;

  • box_size:定义了每个像素块的大小;

  • border:定义了边框的厚度。比如,当它的值是 5,就意味着边框的厚度相当于 5 个小像素块;

add_data 方法用来传入输入文本,在本示例中即为之前文章的超链接。make(fit=True) 函数确保整个二维码都被用到,即使输入数据能用更少的像素块存储也是如此。

最后一步是将其转换为图像文件并存储。make_image 函数可以用来指定图像中的前景色和背景色。在此二维码中分别用了黑色和白色,但也可以根据个人喜好改变颜色。save 函数将图像存储为当前目录下的. png 文件。

生成二维码的 Python 库:qrcode

本文作者 5 行代码生成二维码的过程中基于了 qrcode 库,该库于在 2016 年 11 月由 GitHub 用户 sylnsfar 推出,目前已有 7.4k 的 star 量和 1.2k 的 fork 量。

GitHub 地址:https://github.com/sylnsfar/qrcode

该库在 Python 3 版本上运行,并且可以生成多种类型的二维码,如普通二维码、带图片的艺术二维码(黑白与彩色)和动态二维码(黑白与彩色)。它比较适合直接用于生成二维码图片的场景。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

程序员的乐趣,生成自定义二维码,5行Python代码就解决相关推荐

  1. Zxing生成自定义二维码样式

    Zxing生成自定义二维码样式 现在几乎每个app都带有二维码,但是google提供的zxing包,只给我们提供了核心的二维码算法,而开发过程中经常有自定义二维码的样式的需求,这时候我们就要自己写工具 ...

  2. 程序员的乐趣,生成自定义二维码,5 行 Python 代码就搞定

    选自 | towardsdatascience 作者 | Arindom Bhattacharjee 转自 | 机器之心 参与 | 杜伟.小舟 随处可见的二维码是怎么生成的?自己做一个试试吧. 随着互 ...

  3. SpringBoot生成excel(带本地图片),生成自定义二维码并导入到excel

    先看效果: 再看代码: @RequestMapping("/create")public String createExcel(QrCodeData qrCodeData) thr ...

  4. 微信小程序内,生成自定义二维码

    最近在开发中,需要生成自定义的二维码,于是做了一个包出来,分享给大家一起使用.适用于微信小程序的二维码生成器,基于Canvas生成,支持中文的输入.可在原生小程序,mpvue,taro中使用.(文末有 ...

  5. Php / Thinkphp 之 使用phpqrcode 生成自定义二维码

    前言 phpqrcode是一个现成的类文件,看懂类就可以很方便的生成二维码文件. phpqrcode类文件:点此下载 注意php环境必须开启支持GD2拓展库支持,默认是开启的. 分析 从上文网址下载下 ...

  6. vue生成自定义二维码样式

    一:npm安装包 npm install qrcanvas -S 二:组件引入 import { qrcanvas } from 'qrcanvas'; 三: 使用 3.1:自定义颜色 const c ...

  7. python生成二维码_用python生成二维码

    python中有一个好玩的库,不仅可以生成各种花色的二维码,还可以生成动态二维码. MyQR是一个能够生成自定义二维码的第三方库,可以根据需要生成普通二维码.带图片的艺术二维码,也可以生成动态二维码 ...

  8. Android 自定义二维码

    Android生成二维码使用的是zxing. 1.加入依赖,或者自己选择zxing版本:Releases · zxing/zxing · GitHub dependencies {...impleme ...

  9. MyQR 生成个性二维码

    MyQR 生成个性二维码 python中有一个好玩的库,不仅可以生成各种花色的二维码,还可以生成动态二维码.MyQR是一个能够生成自定义二维码的第三方库,可以根据需要生成普通二维码.带图片的艺术二维码 ...

最新文章

  1. shell逐行读取每一列
  2. ASP.NET2.0数据操作之创建数据访问层(3)
  3. php插入中文数据库乱码以及URL参数乱码
  4. P2672-推销员【贪心】
  5. eclipse安装java web插件
  6. 求python一个类与对象的代码_Python基础系列(五)类和对象,让你更懂你的python代码...
  7. DenseNet细节
  8. simpson积分模板
  9. Linux设备驱动模型-Uevent
  10. 一种简单的睡眠评分规则
  11. 文件传输的服务器软件有哪些,好用的数据传输软件有哪些?专业的数据传输软件排行榜...
  12. 射影几何----帕普斯定理的证明
  13. curl: (6) Could not resolve host: www.huobi.me; Unknown error
  14. Python网络爬虫阶段总结
  15. 25_ue4实现二段跳,加速跑和瞬移
  16. 青山清水静心情 下联是...
  17. python 取模是什么意思_Python 中负数取模问题
  18. 微信小程序教程-调用服务器接口
  19. 综合练习笔记1(用户管理系统)
  20. linux套接字之端口复用

热门文章

  1. dmx计算机,DMX 文件扩展名: 它是什么以及如何打开它?
  2. (Java毕业设计)大学生租房系统(基于java+springboot)
  3. Button上文本在切换英文后,默认为全部大写
  4. 怎么用C++编个网站
  5. 如何在CSDN中分享自己写的代码
  6. 2O19 江大计算机有调剂,江南大学2019考研调剂公告
  7. SparkRDD操作之aggregate
  8. 计算机鼠标一般分为,电脑鼠标有哪几种分类,每种分类是怎么样的?
  9. 公钥、私钥、加密、解密
  10. 李沐动手学深度学习V2-图像增广和代码实现