首先我们要知道怎么让python创建一个属于自己的二维码,让我们先来了解学习下吧~

二维码结构:

从图中我们可以看出二维码结构整体划分为功能图形和编码区两大部分,功能图形又细分为:空白区、位置探测图形、位置探测图形分隔符、定位图形、校正图形,而编码区细分为:格式信息、版本信息、数据和纠错码字,来简单了解一下每一部分的功能:

空白区:留白,不需要做任何处理

位置探测图形:协助扫描软件定位二维码

位置探测图形分隔符:区分功能图形和编码区

定位图形:指示标识密度和确定坐标系

校正图形:校正图形的数量和位置

格式信息:存放格式化数据的信息

版本信息:二维码的规格,二维码符号共有 40 种规格的矩阵
数据和纠错码字:实际保存的二维码信息和纠错码字(用于修正二维码损坏带来的错误)

安装需要的库:
二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,而生成一个二维码也非常简单,在Python中我们可以通过qrcode库或者myqr库生成二维码,而生成一个二维码我们只需要2行代码,我们先安装qrcode库和myqr库,我这里是在虚拟环境里面直接安装:

pip install qrcode

pip install myqr

我这个是已经安装好了的

生成一个二维码比较简单,下面我们就介绍几种不一样的方法来生成二维码吧~

第一种:通过输入文字

import qrcode,datetimetext = input('输入文字:')
img =qrcode.make(text)
# 定义图片名称以时间命名
nd = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
#保存图片至本地目录,可以设定路径
img.save(u'E:/'+ nd +'.png')
#展示图片
# img.show()

第二种:输入网站地址

如果能在二维码中添加个性化头像则更有趣。qrcode也支持该功能。

首先我们使用QRCode类,它提供了更多控制选项。

其中version的范围[1,40],控制生成二维码的大小;box_size表示二维码中每个表格有多少像素;border控制边框厚度等。

import qrcodeqr = qrcode.QRCode(version=2,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=1)#设置二维码的大小qr.add_data("xxxxxxx")  #这里是填网站qr.make(fit=True)img = qr.make_image()img.save("二维码.png")

记得修改其中的网站地址

第三种: 直接在cmd里面用

1、cmd里面彩色图片:myqr -p 图片本地地址 网址 -c
2、cmd里面动态图片:myqr 网址 -c -p 图片本地地址


像这样子就搞好啦~

第四种: 添加动态图片在中间

##可以自带logo!!!!不过只能放网址地址from PIL import Image
import qrcodeqr = qrcode.QRCode(version=5,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=8,border=4)
qr.add_data("XXXXXXXX")   #这里是填网站
qr.make(fit=True)img = qr.make_image()
img = img.convert("RGBA")#logo="D:/favicon.jpg"
icon = Image.open("123.gif")img_w,img_h = img.size
factor = 4
size_w = int(img_w / factor)
size_h = int(img_h / factor)icon_w,icon_h = icon.size
if icon_w >size_w:icon_w = size_w
if icon_h > size_h:icon_h = size_h
icon = icon.resize((icon_w,icon_h),Image.ANTIALIAS)w = int((img_w - icon_w)/2)
h = int((img_h - icon_h)/2)
icon = icon.convert("RGBA")
img.paste(icon,(w,h),icon)
#img.show()
img.save('123.gif')

记得修改其中的网站地址

第五种: 改变二维码颜色(花里胡哨)

import qrcode
# 实例化二维码生成类
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=4,
)
# 设置二维码数据
data = "xxxxxxx"  #这里填你想要的网站
qr.add_data(data=data)# 启用二维码颜色设置
qr.make(fit=True)
img = qr.make_image(fill_color="green", back_color="white")# 显示二维码
img.show()

fill_color后面接你想要的颜色

第六种: 直接调背景图片

from MyQR import myqr
import osi,j,k=myqr.run(words="XXXXXXXXX",       #二维码文本内容# version=1,          #容错率# level='H',          #纠错,L,M,Q,Hpicture="5.jpg",       #背景图片colorized=True,        #图片对比度# contrast=1.0,           #图片亮度save_name="55.jpg"      #图片名字# save_dir=os.getcwd()    #保存路径
)
print(i,j,k)

可以随便调二维码文本内容

总结:


from myqr import myqr#myqr也可以用来生成二维码,但是它和qrcode相比最大的特点就是它可以嵌入图片当背景。'''
# 主要用到以下几个参数
# words:文本,可以是一个链接,或者你想说的话(不支持中文,很不友好)
# picture:你用到的图片,作为背景,不然只是一个光秃秃的二维码
# colorsize:true,表示生成彩图
# save_name:表示生成的二维码的名字
'''myqr.run(words="XXXXXXXXXX",picture="xxx.jpg",colorized=true,save_name="xxxx.png")
import qrcode"""
# 主要用到以下几个参数
version: 二维码的格子大小,可以是1到40。值越大,格子越大,一般不超过10,选择3比较合适
error_correction: 二维码错误容许率,默认为qrcode.constants.error_correct_m,容许小于 15% 的错误率此外还有qrcode.constants.error_correct_l: 容许小于 7% 的错误率qrcode.constants.ror_correct_h: 容许小于 30% 的错误率
box_size: 二维码每个小格子包含的像素数量
border: 二维码到图片边框的小格子数,默认值为 4
"""
qr = qrcode.qrcode() # 事实上里面的参数我们可以都不指定,默认会选择一个比较合适的参数# 调用add_data,指定url。
qr.add_data("xxxxxxxxx")
# 生成二维码图像,颜色为蓝色,背景色为粉色
img = qr.make_image(fill_color='blue', back_color='pink')
# 显示图像,这个会打开一个临时文件
img.show()
# 此外,我们还可以保存到硬盘上
img.save("1.jpg")# 事实上,这个img实际上是通过pil模块得到的,可以理解为里面image对象
# 如果你熟悉pil模块的话,那么你应该知道可以将里面image对象保存成图片对应的字节流
from io import bytesio
buf = bytesio()
img.save(buf) # 将字节保存到buf里面
with open("2.jpg", "wb") as f:f.write(buf.getvalue()) # 和直接保存为1.jpg是一样的

MyQR 和qrcode库是实现python生成二维码基本的两个库,python中虽然有各种第三方库提供极大的方便,但要想将第三方库提供的能力完全使用出来,需要我们去了解它们提供的api并实践。

小编这里只是简单的使用qrcode和MyQR 生成二维码的几种使用方法,更强大的功能还需要你们继续去探究探究,大家如果学会的话,接下来我们来制作一个不一样的中秋节二维码祝福吧~

中秋节祝福版:

首先准备两张图片(其实一张图片加祝福文字也是可以的哦)我这边准备了两张图片

二维码背景图:

内容图一张:

代码如下:

from MyQR import myqr
import osi,j,k=myqr.run(words="http://m.qpic.cn/psc?/V11ZcTtg1AqXYE/ruAMsa53pVQWN7FLK88i5sZwvr*9WuVoR1hfz0s9QZfyAUdLmHgT8yn9dTzhyHboBWc1o0M31SbGD1AA1ET33UyAvILAIeZSjLVDSFURsDU!/b&bo=0AIABQAAAAABF.c!&rf=viewer_4&t=5",       #二维码文本内容# version=1,          #容错率# level='H',          #纠错,L,M,Q,Hpicture="123.jpg",       #背景图片colorized=True,        #图片对比度# contrast=1.0,           #图片亮度save_name="55.png"      #图片名字# save_dir=os.getcwd()    #保存路径
)
print(i,j,k)

效果如下:

中秋节给亲朋好友一个不一样的二维码祝福吧!相关推荐

  1. qrcode生成一个带有图片的二维码

    import qrcode     qr = qrcode.QRCode(     version=2,     error_correction=qrcode.constants.ERROR_COR ...

  2. 一个炫酷的二维码生成项目附源码

    前阵子打算换一个炫酷的公众号二维码,无奈市面上很多的二维码修改器都不尽人意. 草料二维码也挺炫酷的,但是也没有满意的效果. 于是又去万能的github逛了一下,终于找到了一款开源的二维码修改器. 这个 ...

  3. 搭建一个自己的轻量级二维码生成接口

    文章来源:https://www.skyqian.com/archives/QRcode-interface.html 一般而言,第一时间会在博客更新,CSDN随缘更新. 引言 月明浑似雪,无处认渔家 ...

  4. 七夕快到了,教大家用Python来做一个有趣的表白二维码!

    二维码我们日常天天见到的,这玩意居然能用来表白?哎,在程序员的世界里,没有什么是不可能的, 今天教大家自己做一个,让女朋友去扫描一下,嘿嘿,那么问题来了,没有女朋友的兄弟怎么办..... 赶紧找一个 ...

  5. 怎样制作一个漂亮的艺术二维码?

    随着二维码的产生,很多应用场景下都能看到各种二维码的使用.比如:有黑白的二维码.动态的二维码.3D的二维码等等! 如果要求不高,那么我们就直接使用黑白二维码就可以了,那么对于那些设计感很强的用户需求来 ...

  6. 推荐一个开源的 .NET 二维码生成库

    你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! 介绍 QrCodeGenerator 是开源的 .NET 二维码生成库,它支持从文本字符串和字节数组 ...

  7. 用Java写一个工具类生成二维码

    首先需要在pom.xml里添加zxing依赖 <dependency><groupId>com.google.zxing</groupId><artifact ...

  8. 通过一个例子来理解二维码纠错机制

    1 例子 假设:原始数据为8位,纠错码为6位,原始信息由原始数据+纠错码. 在传输过程中,由于信息干扰等原因,导致原始信息被污染,被污染后有两位数据被修改. 说明 编码 原始信息 0010100110 ...

  9. 微信服务号如何创建一个带参数的微信二维码?

    渠道二维码,也称为渠道码,带参二维码,带参统计二维码,顾名思义,渠道二维码的意思就是通过创建一个带参数的二维码来自动统计各渠道数据,是微信公众平台为服务号提供的一种开放接口功能,适用于多种扫码场景,例 ...

最新文章

  1. python 添加进度条
  2. Excel随机选取指定数据
  3. mediawiki安装使用
  4. 网易OpenStack部署运维实战
  5. vue使用总结-生命周期篇
  6. C++使用Windows API CreateMutex函数多线程编程
  7. redhat Nginx 安装
  8. 解决vsftpd 读取目录列表失败的问题
  9. 城市能源管理系统、实时监测、运行监测、负荷效应、预警管理、设备管理、设备入库、设备安装、设备检修、设备报废、设备查询、控制策略、系统集成、HTML/CSS/Bootstrap/jQuery/JS
  10. React Native 交互管理器InteractionManager
  11. linux 命令 单词,linux常用命令的英文单词缩写
  12. GeoQuiz初体验
  13. phpMyAdmin出现错误 Access denied for user 'root'@'localhost' (using password: NO)
  14. c语言ie编程,IEC语言:梯形图(共章).ppt
  15. 20200131每日一句
  16. HashMap分拣存储示例
  17. Pycharm Debug调试(纯干货)
  18. 为什么总是封板又打开涨停_一旦持有个股出现涨停板,却封不住反复打开,意味着什么?...
  19. notify()和notifyAll()的区别
  20. 华大单片机HC32L130 / HC32L136 / HC32F030 系列硬件开发指南

热门文章

  1. 前台系统(前台商城首页)
  2. 让cacti监控路由器与交换机的流量
  3. Log4j日志的级别与使用
  4. HAWQ-V2:基于Hessian迹的混合比特量化策略
  5. oracle数据库删除表字段的SQL语句
  6. raid卡下smart查询
  7. excel vba 批量发送邮件邮件内容放入表格指定主题
  8. [Java Web]一篇文章由浅入深地带你入门HTML
  9. 从IO看数据库底层实现原理
  10. Jumony入门(四)无缝体验