新时代,人们相信新的追求,新的发明自然会诞生。去年,在“一带一路”国际合作高峰论坛上,来自20个国家的青年投票支持了中国的“四大新发明”:高铁、二维码支付、共享单车和网购。其中,扫码支付是指手机通过扫描二维码跳转到支付页面,然后进行支付。这种新的支付方式,造就了二维码满天飞的现象。那么让我们来看看如何使用它来生成二维码图像。
1个二维码
二维码(2-bar code)是一种黑白图形,按照一定的规则以特定的几何图形分布在一个平面(二维方向)上,记录数据符号信息。可将数字、英文字母、汉字、日文字母、特殊符号(如空格、%、/等)、二进制等信息记录成方形图片。
因此,在转换的过程中,编码和压缩的方式是分不开的。在众多类型的二维条码中,常用的编码系统有:Data , Maxi Code, Aztec, QR Code, , , , Code 49, Code 16K 等。
二维码在现实生活中的应用越来越普遍,这要归功于二维码系统的普及。也就是我们常说的二维码。因此,二维码也称为二维码。
二维码是一种矩阵式二维条码(也称为棋盘式二维条码)。它通过矩阵中黑白像素的不同分布在矩形空间中进行编码。在矩阵对应元素的位置,出现点(方点、圆点或其他形状)表示二进制“1”,没有点表示二进制“0”。代表的意义。
2 二维码结构
我们的目的是使用生成的二维码,那么我们需要了解二维码(二维码)的结构。根据标准(ISO/IEC 18004),我们可以理解为二维码结构如下:
1) 功能图形
功能图形是不参与编码数据的区域。它包括五个模块:空白区域、位置检测图形、位置检测图形分隔符、定位图形和校正图形。
2) 编码区
编码区域是数据被编码和存储的区域。它由三部分组成:格式信息、版本信息、数据和纠错码字。
3 二维码绘制流程
二维码的国际标准已经有了一套,二维码的绘制过程严格按照标准执行。这个过程比较复杂,我自己也看过,然后总结出大致的绘制过程。如果您想深入了解绘图细节,可以阅读标准。
绘制二维码的大致流程如下:
1)在二维码的左上角、左下角和右上角绘制位置检测图形。位置检测模式必须是 7x7 矩阵。
2)绘制校正图。校准图案必须是 5x5 矩阵。
3)绘制连接三个位置检测图形的两个定位图形。
4)在上图的基础上,继续绘制格式信息。
5)然后绘制版本信息。
6)将数据码和纠错码填入二维码图片中。
7)最后一步是绘制蒙版图案。因为内容是按照上面的方式填充的,可能会出现大面积的空白或者黑块,给扫描识别带来很大的困难。因此,需要对整个图像和掩码进行掩码操作(),掩码操作是异或异或操作。在这一步中,我们可以将数据排列成各种图片。
4 二维码生成
既然我们已经了解了二维码的原理,我们就可以使用它来生成二维码了。但是天外神坛源码网,互联网上有很多高层人士。一些大神已经写好了生成二维码的第三方库,所以我们不需要重新发明轮子,直接使用现成的库即可。
我会推荐两个库:和-。
在版本 3 上运行,它可以玩很多花样。例如,可以生成以下三种二维码图片:普通二维码、带图片的艺术二维码(黑白加彩色)、动态二维码(黑白加彩色)。更适合直接用于生成二维码图片的场景。
使用 pip 安装库。但是该库依赖于 numpy 和 . 因此,我们需要先安装依赖库批量转码生成二维码,然后再安装。最终安装命令如下:
# 逐一安装
pip install pillow
pip install numpy
pip install imageio
pip install myqr
图书馆生成的带有图片的艺术二维码是一大亮点。具体用法如下:
myqr https://github.com -p github.jpg -c
上述命令的作用是将主页写入彩色二维码。
/(二维码自动识别)
该库还支持生成gif的彩色二维码图片,具体用法如下:
myqr https://github.com -p github.gif -c -con 1.5 -bri 1.6
效果图如下:
//(二维码自动识别)
最后加上库的地址://
- 比那个少一点。但它也有自己的特点。支持生成矢量图形,更适合生成二维码中的二维码。
安装 - 也推荐使用 pip。安装命令如下:
pip install qrcode
在代码中,最简单的用法是这样的。
import qrcode
img = qrcode.make('https://github.com')
还支持自定义二维码信息,具体用法如下:
import qrcode
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data('https://github.com')
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
如果您想了解有关该库的更多信息批量转码生成二维码,可以前往存储库阅读相关文档。
地址是://- |