百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

使用Python生成二维码(python生成二维码gds)

off999 2024-10-29 14:57 32 浏览 0 评论

1、背景

上一次我们介绍了什么是二维码,读过这篇文章以后,相信大家对二维码已经有了一定的认识,那么有没有想过如何自己动手生成二维码呢?二维码在我们的生活与工作中,都能够做什么呢?今天我们来探讨一下用Python如何生成二维码。

2、使用哪些库

Python具有丰富的第三方库,能够生成二维码的就有qrcode库、segno库、pystrich库、myqr库。

其中segno是一个纯python语言开发的二维码和微二维码生成器。常用的还有qrcode库,功能也很丰富。pystrich库作者好久都没有进行更新,不建议继续使用。myqr库可以生成基本二维码、彩色二维码和动态二维码。今天我们主要介绍segno,它支持python2.7和python3.5+,使用时请注意自己的python版本。其他模块感兴趣的小伙伴可以自行探索一下。


??

3、如何安装

安装时与其他python模块一样,使用pip命令安装即可

# 安装segno库
pip insyall segno

# 指定版本安装
pip insyall segno==0.3.2

??

4、如何使用

4.1、 segno常见使用方法

方法

参数

说明

make_qr

内容

生成二维码

make_micro

内容

生成微二维码

make

micro

生成二维码,默认生成微二维码

version

指定二维码版本,默认为1

error=‘级别’,boost_error=False

指定二维码纠错级别(L、M、Q、H),默认为L级别

mask

指定数据掩码,默认为最佳掩码

save

文件名称与格式

将二维码保存为指定格式的文件

border

指定二维码边框,为None时将使用默认值

scale

指定序列化缩放因子,默认为1

dark=‘颜色’, light='颜色'

指定暗模块和亮模块的颜色

kind

保存到流

4.2、 使用示例

4.2.1、 基本使用

import segno

# 因为segno不仅能够生成二维码,还能够生成微二维码,默认生成微二维码,micro为False将强制生成二维码
qrcode = segno.make("Hello World!", micro=False)

# 或使用函数:segno.make_qr()创建二维码
qrcode = segno.make_qr("Hello World!")

# 注意:因为汉字模式不在ISO/IEC 18004范围内,因此二维码阅读器并未广泛支持它,在使用时应谨慎。
# 此外汉字模式不适用微二维码。
qrcode = segno.make("你好!", micro=False, mode='hanzi')

# 查看默认版本
print(qrcode.version) # 1

# 明确指定错误级别L,不允许自动提高错误级别
qrcode = segno.make('Hello World!',
                    error='l', boost_error=False)
print(qrcode.designator)  # 1-L

# 指定掩码
qrcode = segno.make("Hello World!", micro=False, mask=1)
print(qrcode1.mask)  # 1

# 保存二维码
qrcode = segno.save("Hello World.png")  # 生成图片

# 支持序列为其他格式保存
qrcode.save('hello.svg')  # svg文件
qrcode.save('hello.txt')  # text文件

# 指定二维码边框
qrcode.save('hello_default.png', border=None)  # 默认值
qrcode.save('hello_none.png', border=0)  # 无边框
qrcode.save('hello_big.png', border=5)  # 大边框

# 指定缩放因子
qrcode.save('hello.png', scale=10)  # 1模块大小 == 10 像素
qrcode.save('hello.svg', scale=2.4)  # svg可以接受浮点值,png赋值浮点值时,将会归整为2


??

正常二维码


??

无边框


??

大边框

// svg格式
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="29" height="29" class="segno"><path class="qrline" stroke="#000" d="M4 4.5h7m1 0h4m2 0h7m-21 1h1m5 0h1m1 0h1m2 0h1m2 0h1m5 0h1m-21 1h1m1 0h3m1 0h1m2 0h3m2 0h1m1 0h3m1 0h1m-21 1h1m1 0h3m1 0h1m1 0h1m1 0h3m1 0h1m1 0h3m1 0h1m-21 1h1m1 0h3m1 0h1m2 0h1m1 0h1m2 0h1m1 0h3m1 0h1m-21 1h1m5 0h1m2 0h4m1 0h1m5 0h1m-21 1h7m1 0h1m1 0h1m1 0h1m1 0h7m-13 1h5m-13 1h1m1 0h2m1 0h3m1 0h4m1 0h1m2 0h1m1 0h2m-20 1h1m1 0h1m1 0h1m1 0h4m1 0h7m1 0h1m-21 1h1m1 0h1m2 0h2m2 0h1m1 0h1m1 0h1m1 0h1m3 0h2m-20 1h2m4 0h2m1 0h1m4 0h1m1 0h1m1 0h1m-19 1h1m1 0h4m1 0h3m1 0h3m5 0h1m-13 1h1m1 0h2m2 0h2m2 0h1m-19 1h7m1 0h1m1 0h1m2 0h4m-17 1h1m5 0h1m1 0h1m2 0h3m1 0h1m1 0h2m-19 1h1m1 0h3m1 0h1m2 0h3m5 0h3m-20 1h1m1 0h3m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m2 0h3m-20 1h1m1 0h3m1 0h1m1 0h2m2 0h1m2 0h1m2 0h1m-19 1h1m5 0h1m2 0h3m1 0h4m3 0h1m-21 1h7m1 0h4m1 0h3m2 0h1"/></svg>

4.2.2、 进阶使用

指定暗模块颜色

import segno

qrcode = segno.make_qr("Hello World!")

# 指定暗模块的颜色
qrcode.save("hello_color.png", dark="#ccc")



指定暗模块

指定暗模块和亮模块的颜色

import segno

qrcode = segno.make_qr("Hello World!")

# 指定暗模块和亮模块的颜色
qrcode.save('hello_color.png', dark='darkred', light='lightblue')



指定暗模块和亮模块

添加logo

import segno
from PIL import Image # python画图的库
# 安装:pip install pillow, m1使用:arch -x86_64 pip3 install Pillow 

qrcode = segno.make_qr("Hello World!")

# 保存到流
buff = io.BytesIO()
qrcode.save(buff, kind='png', dark='darkblue', light='#eee')
buff.seek(0)
img = Image.open(buff).convert('RGB')
img_width, img_height = img.size
logo_max_size = img_height // 3  # logo尺寸
logo_img = Image.open('./13.png')  # logo照片
# 调整logo大小
logo_img.thumbnail((logo_max_size, logo_max_size), Image.Resampling.LANCZOS)
# 计算二维码中心位置
box = ((img_width - logo_img.size[0]) // 2, (img_height - logo_img.size[1]) // 2)
# 组合图片
img.paste(logo_img, box)
# 保存
img.save('qrcode_with_logo.png')



添加logo

4.3、 使用场景

4.3.1、 快速连接WIFI

from segno import helpers

wifi_settings = {
    "ssid": '(wifi名称)',
    "password": '(wifi密码)',
    "security": 'WPA',
    "hidden": False. # 是否是隐藏wifi
}

wifi = helpers.make_wifi(wifi_settings)

# 注意:微信扫描时只能读取信息,使用手机自带的二维码相机扫描,能够弹窗直接连接wifi。
wifi.save("wifi.png", dark="yellow", light="#323524", scale=10)



Wi-Fi信息

4.3.2、 快速发送邮件

from segno import helpers

qrcode = helpers.make_email(
    to='email_address@jd.com',  # 收件人,字符串或者可迭代字符串
    cc='recipient_address@jd.com',  # 抄送人,字符串或者可迭代字符串
    subject='这是主题',
    body='这是邮件内容'
)

qrcode.save("email.png", scale=10)



快速发送邮件

4.3.3、 快速添加联系人

from segno import helpers

vcard = helpers.make_vcard(
        name='姓名',  # 联系人姓名
        email=('邮箱地址'),  # 邮箱
        url=['www.jd.com'],  # 主页
        phone='400xxxxxxx'  # 电话号码
    )

vcard.save('vcard.png', dark="#FF7D92", scale=10)



添加联系人

4.4 其他场景

?物品属性标签

?店铺地址信息

?紧急联系人信息

?挪车二维码

?等等

5、总结

至此,如何使用python生成二维码,通过segno模块的介绍,我们可以快速的生成自己需要的二维码,生活和工作中,我们都能根据自己的需要,生成二维码,从而方便我们,使事情变得更加简单,还有另外几个二维码库没有介绍,感兴趣的小伙伴,可以自行学习一下。

相关推荐

戴尔官网保修查询入口(戴尔售后保质期查询)

可以按照以下步骤查询戴尔笔记本电脑的保修期:1.打开戴尔官网:https://www.戴尔.com/zh-cn/售后服务/保修政策.html2.点击页面上方的“服务与支持”按钮,进入戴尔的服务支持...

手机号邮箱登录入口(手机号邮箱官网)

手机163邮箱登录入口如下:163邮箱官网入口:https://smart.mail.163.com/login.htm点击进入登录或者注册邮箱即可。手机浏览器访问进入官网http://www.123...

sd卡(sd卡无法读取怎么修复)

  SD卡是大卡,相机用的;普通的手机内存卡,是小卡,正规的名称是macrosd卡,也就是微型SD卡。可以通过卡套转为普通的SD卡的大小。  其实就是大小不同。但手机上的内存卡,人们经常也俗称为SD...

路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
windows7蓝牙功能在哪里打开

点击搜索框在windows7系统主界面点击开始菜单,点击打开搜索框。输入命令输入services.msc后回车,在列表中找到并右击BluetoothSupportS...点击属性选择进入属性菜单,...

2010激活密钥(microsoft2010激活密钥)
2010激活密钥(microsoft2010激活密钥)

步骤/方式1officeprofessionalplus2010:(office专业版)6QFdx-pYH2G-ppYFd-C7RJM-BBKQ8Bdd3G-xM7FB-Bd2HM-YK63V-VQFdKVYBBJ-TRJpB-QFQ...

2025-11-19 04:03 off999

联想官方刷新bios工具(联想电脑刷新bios)

刷新BIOS需要使用联想的官方网站或授权维修中心来进行操作。以下是一些基本步骤:1.访问联想的官方网站,找到BIOS更新程序并下载。在下载过程中,请确保选择与您计算机型号匹配的版本。2.将下载的B...

苹果ios14系统下载(苹果ios14.1下载)
苹果ios14系统下载(苹果ios14.1下载)

1方法一步骤/方式一打开Appstore。步骤/方式二在搜索栏点击搜索框。步骤/方式三搜索并点击需要下载的软件。步骤/方式四点击获取。步骤/方式五最后验证ID密码即可。1.在应用商店搜索你要下载的应用名称。2.点击下载按钮,如果要求登...

2025-11-19 03:03 off999

office2010怎么免费永久激活密钥

用这个试试,一个KMS激活工具可以激活2010到2019的Office自家的目前用的就是这个microsoft6477.moe/1716.html直接使用这个Microsoftoffice2010...

类似爱加速的国内ip(类似爱加速的app)
类似爱加速的国内ip(类似爱加速的app)

推荐“V8盒子”。这一款免费无广告的模拟器,不同于其它软件盒子,而是类似于X8沙箱,满足游戏多开,画中画,悬浮球操作,熄屏后台运行等多功能的沙箱盒子.支持一键root,一键安装xposed框架,能在安卓/苹果手机上运行多个安卓/ios虚拟系...

2025-11-19 02:03 off999

阿里旺旺手机客户端(阿里旺旺手机app)

手机淘宝的旺旺在打开商品后,会看到左下角有个旺旺的图标,点击就可以联系了。  阿里旺旺是将原先的淘宝旺旺与阿里巴巴贸易通整合在一起的一个新品牌。它是淘宝和阿里巴巴为商人量身定做的免费网上商务沟通软件,...

最纯净的pe装机工具(pe工具哪个纯净)

U盘装系统步骤:1.制作U盘启动盘。这里推荐大白菜U盘启动盘制作工具,在网上一搜便是。2.U盘启动盘做好了,我们还需要一个GHOST文件,可以从网上下载一个ghost版的XP/WIN7/WIN8系统,...

装一个erp系统多少钱(wms仓库管理软件)

现在主流有客户端ERP和云端ERP两种客户端通常一次买断,价格在万元左右,但是还有隐性费用,你需要支付服务器、数据管理员,此外如果系统需要更新维护,你还需要支付另外一笔不菲的费用。云端ERP:优势...

cad2014序列号和密钥永久(autocad2014序列号和密钥)

1在cad2014中修改标注样式后,需要将其保存2单击“样式管理器”按钮,在弹出的窗口中选择修改后的标注样式,然后单击“设置为当前”按钮,再单击“保存当前样式”按钮,将其保存为新的样式名称3为了...

qq修改密保手机号(qq修改密保手机号是什么意思)

QQ更改绑定的手机号码操作步骤如下:1、打开手机主界面,找到“QQ”软件点击打开。2、输入正确的QQ账户和密码登录到qq主界面。3、点击左上角的头像“图片”,进入到个人中心界面。4、进入到个人中心界面...

取消回复欢迎 发表评论: