465浏览
查看: 465|回复: 1

[教程] 格局小了,原来python还能这样玩,qrcode+myqr生成QR code二...

[复制链接]

前言

众所周知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个常量:
    1. ERROR_CORRECT_L 大约可以纠正 7% 或更少的错误。
      1. ERROR_CORRECT_M(默认) 大约 15% 或更少的错误可以被纠正。
      2. ERROR_CORRECT_Q 大约 25% 或更少的错误可以被纠正。
        1. ERROR_CORRECT_H 大约可以纠正 30% 或更少的错误。
  • boxsize: 每个点(方块)中的像素个数
  • border:二维码距图像外围边框距离,默认为4,而且相关规定最小为4

设置颜色

fill_colorback_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]

参数功能

必填参数

  • 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 目录 输出目录

实例

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
1.png
2.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())

必填参数

  • 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

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
1.gif
2.gif
2.gif

广告

求求大家关注我吧!
点个赞吧!!!!!
转发一下吧!!!!
什么都不做一下,就走了
难道你们的良心不会痛吗?
我的主页
点赞
三连

推荐阅读

  1. cmd命令提示符+Python-pip新手教程2.0
  2. 手把手教你安装Python3.x

auroraAA  管理员

发表于 2024-7-8 14:36:35

图片裂了 看看可以再上传一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail