二维码又叫QR Code(Quick Response Code),最早由日本公司Denso Wave 于1994年发明。Denso Wave 是丰田汽车公司的子公司,他们的目标是开发一种可以迅速扫描并在小空间内存储大量信息的编码系统。
1999年,Denso Wave 将 QR 码标准发布为开放标准。QR 码采用矩阵式的二维码结构,可以在相对较小的区域内存储更多的信息。QR 码最初主要用于跟踪零部件在汽车制造中的流动,随后很快扩展到其他领域。
因为二维码的成功应用,国际标准化组织(ISO)于 2015 年发布了ISO/IEC 18004 标准,该标准规范了 QR 码的数据结构和编码规则。
通过扫码工具可以将二维码识别为字符串、链接、数字。反之通过工具也可以将字符串转为二维码。
在 Linux 终端可以使用 qrencode 工具生成二维码:
qrencode sudo apt-get install
echo "http://weixin.qq.com/r/pRHh_THEDWxyrXWa90S3" |
qrencode -o - -t ANSI
以上命令将本公众号的链接转为终端下的二维码:
使用微信扫码可以验证二维码生成的是否正确。
使用 Python 的第三方库也可生成二维码,使用前安装 qrcode 和 pillow 库。安装命令为:
$ pip install qrcode[pil]
调用的 demo 为:
import qrcode
# 要生成二维码的数据
data = "http://weixin.qq.com/r/pRHh_THEDWxyrXWa90S3"
# 创建QRCode对象
qr = qrcode.QRCode(
version=1, # 控制二维码的尺寸大小(取值1到40)
error_correction=qrcode.constants.ERROR_CORRECT_L, # 控制二维码的容错级别
box_size=10, # 控制二维码中每个小格子的像素数
border=4, # 控制二维码四周留白的格子数
)
# 添加数据到QRCode对象
qr.add_data(data)
qr.make(fit=True)
# 创建Image对象
img = qr.make_image(fill_color="black", back_color="white")
# 保存二维码图片
# img.save("my_qrcode.png")
img.show()
最终生成的二维码像素为370x370 :
这个 demo 代码相对比较多,还有更少的,一行代码就可以生成二维码:
import qrcode_terminal
# 要生成二维码的数据
data = "http://weixin.qq.com/r/pRHh_THEDWxyrXWa90S3"
# 生成并显示二维码
qrcode_terminal.draw(data)
使用前使用 pip 安装 qrcode_terminal 库,代码执行后会在默认图片查看软件中显示二维码。
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。
原文始发于微信公众号(生有可恋):自己动手生成二维码
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论