当前位置: 首页 > news >正文

如果你需要用Python搞个二维码,那应该收藏这篇博客

文章目录

    • ⛳️ 交代背景
    • ⛳️ pyqrcode 实现二维码
    • ⛳️ qrcode 实现二维码
    • ⛳️ MyQR 实现二维码
    • ⛳️ Amazing-QR 实现二维码

⛳️ 交代背景

作为一名合格的 Python 程序员,在工作中必然会用到二维码相关操作,那如何快速的用 Python 实现呢?别着急,咱们这篇博客就为你解决。

暂时用不到也没有关系,点赞+收藏,毕竟这么全的文章也不好找。

文章会为大家带来最常见,最简单,最实用的 4 种 Python 二维码生成方式。

⛳️ pyqrcode 实现二维码

上来为你展示的就是一款第三方二维码模块,开源高效才是当今编码界的主流。

pyqrcode 是一款 老牌 二维码生成模块了,安装之后三行代码就能搞定一个简单的二维码图片。

pip install pyqrcode

模块安装之后,直接展示入门 Demo,为了可以生成图片,还需要额外安装一个模块,即 pip install pypng

import pyqrcode
import png
qr = pyqrcode.create('梦想橡皮擦')
qr.png('ca.png', scale=5)

运行代码,直接生成一个文本二维码,由于部分站点屏蔽二维码图片内容,可自行使用手机进行扫码测试。

除生成 PNG 图片外,还可以直接生成一个 svg 图片。

import pyqrcode
import png
qr = pyqrcode.create('梦想橡皮擦')
# qr.png('ca.png', scale=5)
qr.svg("./ca.svg", scale=8, background="white", module_color="#03a9f4")

上述方法中的参数不做特殊说明,相信大家通过参数名直接学习掌握,详细参数说明也可以阅读官方手册,进行简单搜索即可找到。

import pyqrcode
import png
qr = pyqrcode.create('梦想橡皮擦')
# qr.png('ca.png', scale=5)
# qr.svg("./ca.svg", scale=8, background="white", module_color="#03a9f4")
qr.png('./code.png', scale=5, m

⛳️ qrcode 实现二维码

第二个推荐的模块与上一模块名称雷同,也是比较老牌的第三方模块,而且该模块在实战中出场频率非常高。

pip install qrcode

为了快速学习,直接查看示例代码:

import qrcode
qr = qrcode.QRCode(
    version=None,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    border=4,
    box_size=10
)
img = qrcode.make('梦想橡皮擦',version=4,border=4,box_size=12)
img.save('ca.jpg')  # 保存图片

qrcode 模块中最重要的方法是 qrcode.QRCode,其参数简单说明如下:

  • version:二维码大小,1-40 不等;
  • error_correction:二维码纠错范围,4 个常量值在下文说明;
  • box_size:二维码中每个小格子包含的像素数;
  • border:边框,二维码与图片边界的距离。

二维码纠错范围,可以选择 4 个常量:

  1. ERROR_CORRECT_L: 7%以下的错误会被纠正;
  2. ERROR_CORRECT_M (默认值): 15%以下的错误会被纠正;
  3. ERROR_CORRECT_Q:25%以下的错误会被纠正;
  4. ERROR_CORRECT_H:30%以下的错误会被纠正。

⛳️ MyQR 实现二维码

又一款二维码生成模块,安装命令如下所示:

pip install MyQR

该模块比较年轻,需要将 pillow 升级到最新版本,使用如下命令:

pip install pillow>=8.3.2

先看一下普通的二维码生成:

from MyQR import myqr

myqr.run(words="cacaca", version=9,
         save_name="ca1.png",
         save_dir="./")

该二维码模块的一大特色就是可以实现动图效果,代码如下:

from MyQR import myqr

myqr.run(words="https://blog.csdn.net/hihell", version=3, picture="./in.gif", colorized=True,
         save_name="ca.gif",
         save_dir="./")

动图也给你准备好了。
在这里插入图片描述
run() 方法中主要的几个参数说明如下:

  • words:二维码文本内容(不支持中文);
  • picture:背景图片;
  • colorsize:True,表示生成彩图;
  • save_name:二维码图片的名字。

⛳️ Amazing-QR 实现二维码

可生成普通二维码、带图片的艺术二维码(黑白与彩色)、动态二维码(黑白与彩色)。

安装命令如下所示:

pip install amzqr

示例代码也非常简单。

# 安装模块后
from amzqr import amzqr
import os
version, level, qr_name = amzqr.run(
    'cacaca',
    version=1,
    level='H',
    picture=None,
    colorized=False,
    contrast=1.0,
    brightness=1.0,
    save_name='ca_amzqr.png',
    save_dir=os.getcwd()
)

中文识别也不是很好,需要进行修改,如果觉得参数过多,可以直接进行简化,只保留 words 参数即可。

from amzqr import amzqr
amzqr.run(words='https://blog.csdn.net/hihell')

默认在运行目录生成一个名称为 qrcode.png 的图片。

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 724 篇原创博客

从订购之日起,案例 5 年内保证更新

  • ⭐️ Python 爬虫 120,点击订购 ⭐️
  • ⭐️ 爬虫 100 例教程,点击订购 ⭐️

相关文章:

  • Linux权限的认识
  • 【JavaScript】五个常用功能/案例:判断特定结尾字符串 | 获取指定字符串 | 颜色字符串转换 | 字符串转驼峰格式 | 简易购物车
  • Kotlin 字符串与空值判断
  • 【NLP开发】Python实现聊天机器人(ALICE)
  • 【题解】同济线代习题二 8.1
  • 【C语言】五分钟彻底搞定字符串
  • 【极客日常】PyQt5的QListView兼容左键双击事件和右键上下文菜单的方法
  • 基于遗传优化算法的小车障碍物避障路线规划matlab仿真(包括matlab仿真录像)
  • vue后台系统管理项目-openlayers地图定位、港口数据标记功能
  • 通讯录的文件版本(产品经理又来加需求了!)
  • 基于Java+SpringBoot+Thymeleaf+Mysql医院预约挂号系统设计与实现
  • 计算机网络-网络层篇-IP协议
  • ASP.NET MVC--过滤器
  • 【C语言】手把手带你写第一个C语言程序
  • Java学习笔记:爬虫-操作动态网页的Selenium
  • 2017年终总结、随想
  • Github访问慢解决办法
  • Invalidate和postInvalidate的区别
  • js递归,无限分级树形折叠菜单
  • JS函数式编程 数组部分风格 ES6版
  • laravel with 查询列表限制条数
  • Mybatis初体验
  • MySQL用户中的%到底包不包括localhost?
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Vue学习第二天
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 我的面试准备过程--容器(更新中)
  •  一套莫尔斯电报听写、翻译系统
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 中文输入法与React文本输入框的问题与解决方案
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)大道至简,职场上做人做事做管理
  • ***详解账号泄露:全球约1亿用户已泄露
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .htaccess配置常用技巧
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Core 成都线下面基会拉开序幕
  • .NET 服务 ServiceController
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • [Android]使用Git将项目提交到GitHub
  • [BJDCTF2020]The mystery of ip1
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [Contiki系列论文之2]WSN的自适应通信架构
  • [hdu1561] The more, The Better 【树形DP】
  • [idea]关于idea开发乱码的配置
  • [JavaScript] JavaScript事件注册,事件委托,冒泡,捕获,事件流
  • [LeetCode] Binary Tree Preorder Traversal 二叉树的先序遍历
  • [Mac软件]Boxy SVG 4.20.0 矢量图形编辑器
  • [Matlab有限元分析] 2.杆单元有限元分析
  • [node] Node.js 缓冲区Buffer