前言
众所周知python上天入地无所不能
所以生成二维码这种小事当然不在话下
qrcode
我们可以通过qrcode来生成二维码,并且它可以生成中文等语言的二维码,可是生成出来的二维码却很普通,丝毫没有一点儿个性。
官方文档 https://pypi.org/project/qrcode/
安装
qrcode是python的第三方库
可以直接用pip下载
pip install qrcode
pip install qrcode[pil]
如果不会安装库 点我!!!点我!!!
qrcode[pil]可以使我们在cmd命令行就能生成二维码
安装后可以开始生成二维码
终端使用
qr "Some text" > test.png
"Some text" 是你二维码扫出来的文字或网站(注:网站要完整如:https://www.baidu.com/,否则不能跳转到网站)
test.png 是你输出的文件名和后缀
Python代码
简单使用
#生成
import qrcode
img = qrcode.make('Some text')#二维码的内容:文字或网站(注:网站要完整如:https://www.baidu.com/)
#保存
img.save('test.jpg')#输出的保存路径、文件名和后缀
#显示
img.show()
此处并没有使用add_data()添加数据,make_image()生成二维码,而是使用qrcode.make(data)的方式获取im对象。qrcode.make()是qrcode提供简单调用接口。下一章我们再介绍
高级用法
import qrcode
# 实例化QRCode生成qr对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=4
)
# 导入数据
qr.add_data('Some text')#二维码的内容:文字或网站(注:网站要完整如:https://www.baidu.com/)
qr.make(fit=True)
# 生成
img = qr.make_image(fill_color="black", back_color="white")
# 保存
img.save(img_file)
# 显示
img.show()
QRCode参数详细说明:
- version: 一个整数,范围为1到40,表示二维码的大小(最小值是1,是个12×12的矩阵),如果想让程序自动生成,将值设置为None 并使用 fit=True 参数即可。
- error_correction: 二维码的纠错范围,可以选择4个常量:
- ERROR_CORRECT_L 大约可以纠正 7% 或更少的错误。
- ERROR_CORRECT_M(默认) 大约 15% 或更少的错误可以被纠正。
- ERROR_CORRECT_Q 大约 25% 或更少的错误可以被纠正。
- ERROR_CORRECT_H 大约可以纠正 30% 或更少的错误。
- boxsize: 每个点(方块)中的像素个数
- border:二维码距图像外围边框距离,默认为4,而且相关规定最小为4
设置颜色
fill_color和back_color可以更改 QR 的背景和绘画颜色。
这两个参数都接受 RGB 颜色元组,官方是这么说的,但本人亲测不行
可以用颜色的单词(如:black,green)
img = qr.make_image(back_color="green", fill_color="black")
myqr
MyQR是一个能够生成自定义二维码的python第三方库,根据需要能够生成普通二维码、带背景图片的艺术二维码、动态二维码。它比起 qrcode 生成的二维码可漂亮多了,美中不足的是它只可以生成 English(英语) 的二维码
,不可以生成中文二维码
它支持的字符有
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ··,.:;+-*/\~!@#$%^&`'=<>[]()?_{}|
官方文档 https://pypi.org/project/MyQR/
安装
myqr也是python的第三方库
可以直接用pip下载
pip install myqr
如果不会安装库 点我!!!点我!!!
安装后可以开始生成二维码
终端使用
myqr words [-h] [-v {1,2,3,...,40}] [-l {L, M, Q , H}] [-p image_filename] [-c] [-con contrast_value] [-bri Bright_value] [-n output_filename] [-d output_directory]
参数功能
必填参数
可选参数(可选!!可以不填!!)
参数 |
内容 |
含义 |
-h |
(无内容) |
显示帮助消息并退出,无法与其他参数同时调用 |
-v |
{1,2,3,4,5,6,·······39,40} |
二维码图片一侧的长度。从小到大是1到40。(建议不要超过20) |
-l |
{l,M,Q,H} |
错误更正级别:L(低)、M(中)或Q(四分位)、H(高,默认)。否则,只需默认为:H |
-p |
'.jpg'、'.png'、'.bmp'、'.gif'中的一个结尾 |
图片 |
-c |
(无内容) |
彩色生成带有图片的彩色二维码。只有在有正确的'-p'或'-picture'时才起作用。 |
-con |
这个值没有限制,默认值:1.0 |
对比度,控制对比度增强的浮点值。因子1.0始终返回原始图像的副本。 |
-bri |
这个值没有限制。默认值:1.0 |
亮度,控制亮度增强的浮点值。1.0始终返回原始文件的副本。 |
-n |
'.jpg'、'.png'、'.bmp'、'.gif'中的一个结尾 |
输出的文件名 |
-d |
目录 |
输出目录 |
实例
myqr "words" -v 10 -l L -p "1.png" -c -con 1.0 -bri 1.0 -n "2.png" -d "C:\Users\admin\Desktop"
1.png
2.png
由于静态和动态的二维码差别不大,只是图片变成了动态的,输出的后缀是 gif
Python代码
值得注意的是 myqr 无法使用相对路径,因此可以使用 os 库中的 getcwd 来获取绝对路径
from MyQR import myqr
import os
version, level, qr_name = myqr.run("words",version = 1,level = 'H',picture = None,colorized = False,contrast = 1.0,brightness = 1.0,save_name = None,save_dir = os.getcwd())
必填参数
可选参数(可选!!可以不填!!)
参数 |
内容 |
含义 |
version |
{1,2,3,4,5,6,·······39,40} |
int,二维码图片一侧的长度。从小到大是1到40。(建议不要超过20) |
level |
{l,M,Q,H} |
str,错误更正级别:L(低)、M(中)或Q(四分位)、H(高,默认)。否则,只需默认为:H |
picture |
'.jpg'、'.png'、'.bmp'、'.gif'中的一个结尾 |
str,图片 |
colorized |
True,False |
bool,彩色生成带有图片的彩色二维码。只有在有正确的'-p'或'-picture'时才起作用。 |
contrast |
这个值没有限制,默认值:1.0 |
float,对比度,控制对比度增强的浮点值。因子1.0始终返回原始图像的副本。 |
brightness |
这个值没有限制。默认值:1.0 |
float,亮度,控制亮度增强的浮点值。1.0始终返回原始文件的副本。 |
save_name |
'.jpg'、'.png'、'.bmp'、'.gif'中的一个结尾 |
str,输出的文件名 |
save_dir |
目录 |
str,输出目录 |
由于静态的二维码在终端那里已经演示过了,所有不在演示。
注:图片是 gif 记得把输出也改成 gif
from MyQR import myqr
import os
img = myqr.run("words",version = 1,level = 'H',picture = "1.gif",colorized = True,contrast = 1.0,brightness = 1.0,save_name = "2.gif",save_dir = os.getcwd())
1.gif
2.gif
广告
求求大家关注我吧!
点个赞吧!!!!!
转发一下吧!!!!
什么都不做一下,就走了
难道你们的良心不会痛吗?
我的主页
推荐阅读
- cmd命令提示符+Python-pip新手教程2.0
- 手把手教你安装Python3.x