选自 | towardsdatascience

作者 | Arindom Bhattacharjee

转自 | 机器之心

参与 | 杜伟、小舟

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

随着互联网和智能移动设备不断普及,二维码(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 版本上运行,并且可以生成多种类型的二维码,如普通二维码、带图片的艺术二维码(黑白与彩色)和动态二维码(黑白与彩色)。它比较适合直接用于生成二维码图片的场景。

我们这里只看一下该库生成二维码的示例:

普通二维码

带图片的艺术二维码

动态二维码

想要了解具体安装方法和代码的读者可以参考 GitHub 项目主页。

原文链接:https://towardsdatascience.com/generate-qrcode-with-python-in-5-lines-42eda283f325

最新 AI 干货,我在看 

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

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

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

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

    随处可见的二维码是怎么生成的?自己做一个试试吧. 随着互联网和智能移动设备不断普及,二维码(Quick Response code)已经成为世界上应用最为广泛的信息载体之一.生成二维码的工具也层出不穷 ...

  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. docker commit (从容器创建一个新的镜像)
  2. CycleGAN作者朱俊彦宣布重返CMU,担任助理教授
  3. Css的filter常用滤波器属性及语句大全
  4. Jenkins学习四:Jenkins 邮件配置
  5. Python带下划线的变量或函数命名详细介绍
  6. VTK:Points之ExtractClusters
  7. 动画原理——绘制正弦函数环绕运动椭圆运动
  8. applicationContext.xml
  9. 关于C#函数对象参数传递的问题
  10. Android8.0(34)----Android 8.0 Settings流程分析与变动
  11. windows+nginx+tomcat实现集群负载均衡(生产环境必读)
  12. 详解:hiveserver2的使用与介绍
  13. vscode 中 eslint 的配置
  14. CFS调度器(1)-基本原理
  15. android长截图工具下载,长截图拼接app下载
  16. Cardhop for Mac(通讯录管理工具)
  17. GPRS模块发送短信
  18. Cesium中如何获取鼠标单击位置的经纬度
  19. Lotus Miner和分布式设置
  20. 银联入局开启刷脸支付新战场

热门文章

  1. 技术图文:如何实现汉诺塔问题?
  2. 【HDU】1305 Immediate Decodability(字典树:结构体数组,二维数组,链表/指针)
  3. 64岁Python之父退休失败,正式加入微软搞开源
  4. Python程序员的“避坑”指南
  5. 我还没考试,算法就说我的物理一定挂科
  6. 千万用户同时在线,优酷智能档在双11“猫晚”直播如何防卡顿?
  7. 银行卡大小的充电宝,买就送耳机!
  8. 实战:基于OpenPose的卡通人物可视化 | CSDN博文精选
  9. 5大典型模型测试单机训练速度超对标框架,飞桨如何做到?
  10. 碾压Bert?“屠榜”的XLnet对NLP任务意味着什么