格局小了,原来python还能这样玩,qrcode+myqr生成QR code二...
# 前言
众所周知python上天入地无所不能
所以生成二维码这种小事当然不在话下
# qrcode
我们可以通过qrcode来生成二维码,并且它可以生成中文等语言的二维码,可是生成出来的二维码却很普通,丝毫没有一点儿个性。
> 官方文档(https://pypi.org/project/qrcode/)
## 安装
qrcode是python的第三方库
可以直接用pip下载
```powershell
pip install qrcode
pip install qrcode
```
[如果不会安装库 点我!!!点我!!!](https://blog.csdn.net/weixin_53024080/article/details/119114602)
qrcode可以使我们在cmd命令行就能生成二维码
安装后可以开始生成二维码
## 终端使用
```powershell
qr "Some text" > test.png
```
"Some text" 是你二维码扫出来的文字或网站(注:网站要完整如:https://www.baidu.com/,否则不能跳转到网站)
test.png 是你输出的文件名和后缀
![二维码](https://img-blog.csdnimg.cn/fc2261dfcd16433f8c3064cc3c7e32b6.png#pic_center)
## Python代码
### 简单使用
```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提供简单调用接口。下一章我们再介绍
### 高级用法
```python
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个常量:
1. ERROR_CORRECT_L 大约可以纠正 7% 或更少的错误。
2. ERROR_CORRECT_M(默认) 大约 15% 或更少的错误可以被纠正。
3. ERROR_CORRECT_Q 大约 25% 或更少的错误可以被纠正。
4. ERROR_CORRECT_H 大约可以纠正 30% 或更少的错误。
- boxsize: 每个点(方块)中的像素个数
- border:二维码距图像外围边框距离,默认为4,而且相关规定最小为4
### 设置颜色
**fill_color**和**back_color**可以更改 QR 的背景和绘画颜色。
> 这两个参数都接受 RGB 颜色元组,官方是这么说的,但本人亲测不行
可以用颜色的单词(如:black,green)
```python
img = qr.make_image(back_color="green", fill_color="black")
```
![二维码](https://img-blog.csdnimg.cn/f2011f05ad834443b2dffb9c119e2bca.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzAyNDA4MA==,size_16,color_FFFFFF,t_70#pic_center)
# myqr
MyQR是一个能够生成自定义二维码的python第三方库,根据需要能够生成普通二维码、带背景图片的艺术二维码、动态二维码。它比起 qrcode 生成的二维码可漂亮多了,美中不足的是它只可以生成 English(英语) 的二维码
,不可以生成中文二维码
它支持的字符有
>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ··,.:;+-*/\~!@#$%^&`'=<>[]()?_{}|
> 官方文档 (https://pypi.org/project/MyQR/)
## 安装
myqr也是python的第三方库
可以直接用pip下载
```powershell
pip install myqr
```
[如果不会安装库 点我!!!点我!!!](https://blog.csdn.net/weixin_53024080/article/details/119114602)
安装后可以开始生成二维码
## 终端使用
```powershell
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]
```
### 参数功能
#### 必填参数
- words 二维码扫描的结果,也就是内容
#### 可选参数(可选!!可以不填!!)
| 参数 | 内容 | 含义 |
| ---- | ------------------------------------------ | ------------------------------------------------------------ |
| -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 | 目录 | 输出目录 |
### 实例
```powershell
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**
!(https://img-blog.csdnimg.cn/9083473352b94aa3a630bbb7a6e038e6.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzAyNDA4MA==,size_16,color_FFFFFF,t_70#pic_center)
**2.png**
!(https://img-blog.csdnimg.cn/5e7f24adebdf4615b4f66b18bba9ffab.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzAyNDA4MA==,size_16,color_FFFFFF,t_70#pic_center)
由于静态和动态的二维码差别不大,只是图片变成了动态的,输出的后缀是 gif
## Python代码
> 值得注意的是 myqr 无法使用相对路径,因此可以使用 os 库中的 getcwd 来获取绝对路径
```python
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())
```
#### 必填参数
-words str 二维码扫描的结果,也就是内容
#### 可选参数(可选!!可以不填!!)
| 参数 | 内容 | 含义 |
| ---------- | ------------------------------------------ | ------------------------------------------------------------ |
| 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
```python
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**
!(https://img-blog.csdnimg.cn/18c851f46da84979b63bb88dd962613d.gif#pic_center)
**2.gif**
!(https://img-blog.csdnimg.cn/7b909fb68d6c45598c2f1c15e97a7dea.gif#pic_center)
# 广告
求求大家关注我吧!
点个赞吧!!!!!
转发一下吧!!!!
什么都不做一下,就走了
难道你们的良心不会痛吗?
[我的主页](https://blog.csdn.net/weixin_53024080)
![点赞](https://img-blog.csdnimg.cn/f4480e595a5b4cefa7ed2fb58350dd10.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzAyNDA4MA==,size_16,color_FFFFFF,t_70#pic_center)
![三连](https://img-blog.csdnimg.cn/b39fdb0a55fa4c40ba1397a1548999b1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzAyNDA4MA==,size_16,color_FFFFFF,t_70#pic_center)
# 推荐阅读
> 1. (https://blog.csdn.net/weixin_53024080/article/details/119114602)
> 2. [手把手教你安装Python3.x](https://blog.csdn.net/weixin_53024080/article/details/119139122) 图片裂了 看看可以再上传一下
页:
[1]