文档章节

Python | 一行命令生成动态二维码

o
 osc_ogi0qclx
发布于 2019/08/23 10:26
字数 1391
阅读 34
收藏 0

精选30+云产品,助力企业轻松上云!>>>

Python | 一行命令生成动态二维码

当我看到别人的二维码都做的这么炫酷的时候,我心动了!

我也想要一个能够吸引眼球的二维码,今天就带大家一起用 Python 来做一个炫酷的二维码!

首先要安装工具 myqr:

pip install myqr

安装完成后,就可以在命令行中输入 myqr 查看下使用帮助:

$ myqr --help

myqr参数

可以看出 myqr 有着丰富的参数支持,这里就不再一一解释,后面使用到会再细说。

简单用法

首先我们生成一个普通二维码:

$ myqr "http://weixin.qq.com/r/PnUmPg7E8lONrUpd9yAs"
line 16: mode: byte
Succeed!
Check out your 2-H QR-code: /mnt/d/code/Python/learn/myqr/qrcode.png

这时就会在当前目录下生成一个名称为 qrcode.png 的二维码。

如果 myqr 后面传入的是普通字符串,那么扫描后会现在字符串。若是一个网址,扫描后会自动跳转。

普通二维码

大家可以扫描下看看,是不是我们设置的字符串。

需要注意的时,这里的字符串不能指定中文,否则会抛出 ValueError('Wrong words! Make sure the characters are supported!') 的异常。

1、使用 -d 可以控制输出的文件路径;

2、使用 -n 控制文件名称,格式可以是 .jpg.png.bmp.gif

3、使用 -l 可以控制二维码的纠错等级,范围是L、M、Q、H,从左到右依次升高;

4、使用 -v 控制二维码的边长,范围是 1 至 40,数字越大边长越大。

生成带图片的二维码

光是二维码,是否太单调了呢?没关系,我们能加上我们想要的图片,使二维码更具辨识度!

我们可以使用 -p 参数指定图片,将二维码与该图片结合在一起。

原图

想要将上面的图片结合到二维码中,可以使用下面的命令来生成:

myqr "http://weixin.qq.com/r/PnUmPg7E8lONrUpd9yAs" -p developer.png

黑白二维码

黑白的,似乎不是那么好看,彩色的如何呢? 实现彩色也非常简单。

如果想要生成彩色的,可以加上参数 -c

彩色二维码

另外,如果想要图片的对比度和亮度,可以使用参数 -con 控制图片对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为 1.0;

使用参数 -bri 用来调节图片的亮度,其余用法和取值与 -con 相同。

生成动态二维码

其实生成动态二维码,并没有想象的那么复杂。

方式与上面的带图片的二维码的生成方式没有区别,只是将原始图片换成 .gif 即可!

你女友

myqr "http://weixin.qq.com/r/PnUmPg7E8lONrUpd9yAs" -p who.gif -c

你女友的二维码

哇哦~

 

Python 代码中调用的方式生成

from MyQR import myqr

myqr.run('https://www.baidu.com')

## so easy

下面我们来详细的讲解一下 myqr.run() 函数里面的参数

参数 含义 详细
words 二维码指向链接 str,输入链接或者句子作为参数
version 边长 int,控制边长,范围是1到40,数字越大边长越大,默认边长是取决于你输入的信息的长度和使用的纠错等级
level 纠错等级 str,控制纠错水平,范围是L、M、Q、H,从左到右依次升高,默认纠错等级为'H'
picture 结合图片 str,将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片
colorized 颜色 bool,使产生的图片由黑白变为彩色的
contrast 对比度 float,调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
brightness 亮度 float,调节图片的亮度,其余用法和取值与 contrast 相同
save_name 输出文件名 str,默认输出文件名是"qrcode.png"
save_dir 存储位置 str,默认存储位置是当前目录

 

myqr.run(words='https://www.baidu.com', picture='', colorized=True,)

总结

myqr 使用非常简单,一行代码就可以生成我们想要的二维码。另外,还有在 Python 代码中调用的方式生成,这里就不再赘述。

大家快试试生成自己的专属炫酷二维码吧!

======================================================================

myqr不支持中文内容,有中文需要可以用QRCode

QRCode    生成二维码只用一行

import qrcode

qrcode.make("不睡觉干嘛呢").get_image().show() #设置URL必须添加http://


安装导入QRCode

pip install qrcode #方法多,体量小

 

QRCode 多种自定义方法

import qrcode

text = input("输入文字或URL:")
img =qrcode.make(text)
img.save()                            #保存图片至本地目录,可以设定路径
img.show()    

生成添加logo的二维码

复制代码
from PIL import Image
import qrcode,os

def create_qrcode(url,qrcodename):
    qr = qrcode.QRCode(
    version=1, # 设置容错率为最高
    error_correction=qrcode.ERROR_CORRECT_H, # 用于控制二维码的错误纠正程度
    box_size=8, # 控制二维码中每个格子的像素数,默认为10
    border=1, # 二维码四周留白,包含的格子数,默认为4
    #image_factory=None, 保存在模块根目录的image文件夹下
    #mask_pattern=None
    )

    qr.add_data(url) # QRCode.add_data(data)函数添加数据
    qr.make(fit=True) # QRCode.make(fit=True)函数生成图片

    img = qr.make_image()
    img = img.convert("RGBA") # 二维码设为彩色
    logo = Image.open('xx.jpg') # 传gif生成的二维码也是没有动态效果的

    w , h = img.size
    logo_w , logo_h = logo.size
    factor = 4 # 默认logo最大设为图片的四分之一
    s_w = int(w / factor)
    s_h = int(h / factor)
    if logo_w > s_w or logo_h > s_h:
    logo_w = s_w
    logo_h = s_h

    logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS)
    l_w = int((w - logo_w) / 2)
    l_h = int((h - logo_h) / 2)
    logo = logo.convert("RGBA")
    img.paste(logo, (l_w, l_h), logo)
    img.show()
    img.save(os.getcwd()+'/' + qrcodename + '.png', quality=100)
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Python | 一行命令生成动态二维码

当我看到别人的二维码都做的这么炫酷的时候,我心动了! 我也想要一个能够吸引眼球的二维码,今天就带大家一起用 Python 来做一个炫酷的二维码! 首先要安装工具 myqr: 安装完成后,就可以在...

osc_r8gstrez
2018/10/12
0
0
Python生成个性二维码

Python 生成个性二维码」是我们推出不久的新课,这篇文章教你如何使用 Python 基于MyQR实现生成普通二维码,带图片的艺术二维码,动态二维码。 先来看看效果图 普通二维码 带图片的艺术二维码...

实验楼
2018/07/09
0
0
Python | 一行命令生成动态二维码

当我看到别人的二维码都做的这么炫酷的时候,我心动了! 我也想要一个能够吸引眼球的二维码,今天就带大家一起用 Python 来做一个炫酷的二维码! 首先要安装工具 myqr: 安装完成后,就可以在...

osc_88djj30s
2018/10/16
3
0
python生成动态个性二维码

1 安装工具 2 生成普通二维码 3 带图片的二维码 4 动态 GIF 二维码 5 在Python程序中使用 一、安装 首先在python环境下运行, 打开cmd进入python27 进入scripts 然后在scripts输入命令:pip...

osc_wqha5akl
2018/06/15
7
0
用python生成二维码

python中有一个好玩的库,不仅可以生成各种花色的二维码,还可以生成动态二维码。 MyQR是一个能够生成自定义二维码的第三方库,可以根据需要生成普通二维码、带图片的艺术二维码,也可以生成...

osc_15ajvvu8
2019/03/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

asp.net core之NLog

NuGet添加 NLog.Web.AspNetCore。 <PackageReference Include="Microsoft.AspNetCore.App" /> 添加配置文件 新建一个文件nlog.config(建议全部小写,linux系统中要注意), 并右键点击其属性......

一介草民Coder
58分钟前
23
0
.NET中的struct和class有什么区别? - What's the difference between struct and class in .NET?

问题: .NET中的struct和class有什么区别? 解决方案: 参考一: https://stackoom.com/question/3OT/NET中的struct和class有什么区别 参考二: https://oldbug.net/q/3OT/What-s-the-differ...

富含淀粉
今天
23
0
android:layout_weight是什么意思? - What does android:layout_weight mean?

问题: I don't understand how to use this attribute. 我不明白如何使用这个属性。 Can anyone tell me more about it? 谁能告诉我更多关于它的事情? 解决方案: 参考一: https://stacko...

javail
今天
17
0
CSS背景不透明度[重复] - CSS Background Opacity [duplicate]

问题: This question already has an answer here: 这个问题已经在这里有了答案: How do I give text or an image a transparent background using CSS? 如何使用CSS为文本或图像提供透明背...

fyin1314
今天
31
0
node http 获取gb2312网页如何转为utf8

最初,我想当然认为是下述做法,但被证明是错误的 const http = require('http'), iconv = require('iconv-lite');const url = 'http://xxx';http.get(url, function(res) { var bo......

高延
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部