在python 中可以用qrcode 库将文本、图片、视频链接等生成二维码,并用图片处理库PIL 中的Image 方法添加自定义图片,制作带有logo的二维码。本文以Windows 系统为例进行演示。

有基础的同学请跳过前三章,直接查看二维码生成代码

文章目录

  • 一、安装python
  • 二、安装所需库
  • 三、运行python 程序
  • 四、二维码生成
    • 1、简易基础二维码
    • 2、可设置参数二维码
    • 3、带有logo的二维码

一、安装python

首先安装python,这里建议使用Anaconda,一个开源的python 版本。Anaconda两个版本一个是适用python2 的Anaconda2,一个是适用python3 的Anaconda3,python2 已经停止更新,零基础建议从python3 开始学习。

官网下载很慢而且容易出错,推荐从清华镜像网站下载自己需要的版本
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

网上已经有Anaconda 安装的详细教程可供参考
如Windows 系统:
http://www.win7zhijia.cn/win8jc/win8_44358.html
其他系统:
https://zhuanlan.zhihu.com/p/32925500

二、安装所需库

1、Win+R键可以打开运行符,输入cmd 回车进入系统命令行

2、系统命令行执行:

pip install qrcode
pip install Image

三、运行python 程序

1、直接在python 自带的开发工具中执行命令
系统命令行输入python,进入python 命令行。输入python 命令回车运行:

2、将程序保存为.py 结尾的python 文件,进入文件所在的目录,在系统命令行输入

python 文件名称

(这里编写代码使用的文本编辑器是Sublime Text)


3、使用Jupyter Notebook 或PyCharm 等调试执行代码
前面下载了anaconda 带有Jupyter Notebook,这里直接演示Jupyter Notebook

1)在系统命令行输入Jupyter Notebook,会自动跳转到网页,若未自动跳转复制粘贴以下链接手动跳转

2)创建python3 笔记本

3)编辑模式—在单元格中输入命令,Alt+回车执行

4)快捷键查看
命令行模式—点击Esc键后再点击H,可以查看快捷键

四、二维码生成

1、简易基础二维码

# 导入qrcode包
import qrcode
# 要生成二维码的视频链接地址,或直接写字符串扫码显示文字等
img = qrcode.make('https://www.bilibili.com/bangumi/play/ss5761?spm_id_from=333.999.0.0')
# 生成的二维码保存地址及名称
img.save('E:/bilibili_bkm.png')
# 在窗口展示二维码
img.show()

效果如下图:

2、可设置参数二维码

# 导入qrcode包
import qrcode# 要生成二维码的视频链接地址
data = 'https://www.bilibili.com/bangumi/play/ss5761?spm_id_from=333.999.0.0'
# 生成的二维码保存地址及名称
img_file = 'E:/bilibili_bkm1.png'# 实例化QRCode生成qr对象
qr = qrcode.QRCode(version=5,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4)# 向二维码中添加信息
qr.add_data(data)# 当fit参数为真或者没有给出version参数时,调用best_fit方法来找到适合数据的最小尺寸
qr.make(fit=True)# 生成二维码
img = qr.make_image()# 保存二维码
img.save(img_file)# 展示二维码
img.show()

version:控制二维码的大小,取值范围从1到40。取最小值1时,二维码大小为21*21。
 
    取值为None或者使用fit=true参数时,二维码会自动调整大小。
 
error_correction:控制二维码纠错级别。
 
    ERROR_CORRECT_L:大约7%或者更少的错误会被更正。
 
    ERROR_CORRECT_M:默认值,大约15%或者更少的错误会被更正。
 
    ERROR_CORRECT_Q:大约25%或者更少的错误会被更正。
 
    ERROR_CORRECT_H:大约30%或者更少的错误会被更正。

box_size:控制二维码中每个格子的像素数,默认为 10。
 
border:控制二维码四周留白包含的格子数,默认为4。

3、带有logo的二维码

from PIL import Image
import qrcode# 要生成二维码的视频链接地址
data = 'https://www.bilibili.com/bangumi/play/ss5761?spm_id_from=333.999.0.0'
# 生成的二维码保存地址及名称
img_file = 'E:/bilibili_bkm2.png'
# logo图片所在位置
logo_file = 'E:/pikaqiu.jpeg'# 实例化QRCode生成qr对象
qr = qrcode.QRCode(version=5,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4)# 向二维码中添加信息
qr.add_data(data)# 当fit参数为真或者没有给出version参数时,调用best_fit方法来找到适合数据的最小尺寸
qr.make(fit=True)# 将实例转换成图片并设置为彩色
img = qr.make_image()
img = img.convert('RGBA')# 获取二维码图片的宽高
img_w,img_h = img.size# 打开logo图片
logo = Image.open(logo_file)# 获取logo图片的宽高
logo_w,logo_h = logo.size# 设置logo的大小最大为二维码大小的四分之一
factor = 4
size_w = int(img_w/factor)
size_h = int(img_h/factor)if logo_w > size_w or logo_h > size_h:logo_w = size_wlogo_h = size_h# 重新调整logo的尺寸,高质量彩色
logo = logo.resize((logo_w,logo_h),Image.ANTIALIAS).convert('RGBA')# 设置logo的位置,在二维码图片的中心
l_w = int((img_w-logo_w)/2)
l_h = int((img_h-logo_h)/2)# 将logo粘贴到二维码上
img.paste(logo,(l_w,l_h),logo)# 保存二维码
img.save(img_file)# 展示二维码
img.show()

效果如下图:

进入保存图片的文件夹,可以看到生成的二维码图片

python—生成带logo的二维码(零基础向)相关推荐

  1. python——生成带logo的二维码图片并且保存、控制打印机打印图片二维码、整合打印(获取输入框的值)、打包成exe文件

    1.生成带logo的二维码图片并且保存 前提条件:在D盘里有logo.png的图片,生成的二维码图片在D盘里的111.png import qrcode from PIL import Image# ...

  2. iOS 生成带 logo 的二维码,区域截屏保存至相册(小功能二连发 (一))

    原文链接:http://www.jianshu.com/p/36e9f012ef39 生成带 logo 的二维码 区域截屏相关 -- 由3033分享 开篇 最近项目需要搞了几个相对独立的小功能,今天有 ...

  3. zxing生成带logo的二维码

    倒Zxing依赖 implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.2.1' 代码段 import android.graphics.Bitma ...

  4. Android Studio 生成二维码、生成带logo的二维码

    1.生成二维码: 2.生成logo的二维码: 一.引入依赖 首先在libs文件目录下放进jar包zxing.jar,要下载zxing.jar就点击链接:下载zxing.jar(记得点击"Cd ...

  5. 使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小

    使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小  * 可选是否带logo,可选是否保存二维码图片:结果返回base64编码的图片数据字符串  * 页面显示:< ...

  6. asp.net 后台生成二维码及生成带logo的二维码

    asp.net 后台生成二维码及生成带logo的二维码,此处将生成二维码和带Logo的二维码写在一起的,需要自己区分一下. 直接上代码 using System; using System.Colle ...

  7. vue 生成带logo的二维码 qrcode-vue 支持下载图片 实例详解

    最近的项目上有个需求,生成带logo的二维码,网上大部分都是基于JQ插件jQuery.qrcode.对于vue项目并不适用,翻阅了大量资料后,我找到了qrcode-vue这款基于vue的生成二维码的插 ...

  8. Golang使用qrcode生成二维码,以及生成带logo的二维码

    添加并引用依赖 go get github.com/boombuler/barcodeimport ("github.com/skip2/go-qrcode" ) 1.生成字节形式 ...

  9. .NET ZXING 生成带logo的二维码和普通二维码及条型码

    工作中使用到了,就随笔记下了.希望可以帮助有需要的同学们. /// <summary>         /// 生成二维码         /// </summary>     ...

最新文章

  1. HTTP服务器端常用推送技术
  2. cent0S7根分区扩容以及问题解决
  3. 研发项目管理中需注意的人性弱点(Z)
  4. oracle xe gentoo,Oracle在gentoo下安装
  5. android 放大镜动画,Android在图片上进行放大镜效果(放大镜形状)
  6. linux 建立vnc,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  7. 2021年南阳市五中高考成绩查询,南阳市“赫赫有名”的五大高中,2020年高考成绩一目了然!...
  8. QQ浏览器如何把m3u8转换为mp4等其他格式
  9. feedsky rss更新
  10. 前端局部刷新的几种方式
  11. 用 matplotlib 绘制 3D 时间序列动态图
  12. konga 连接postgresql 12+启动异常:error: column r.consrc does not exist
  13. MySQL 各个索引的使用
  14. 后氧传感器正常数据_氧传感器电压多少正常?氧传感器数据流分析介绍
  15. [MachineLearning] 机器学习速成笔记 - Bilibili
  16. 华为实验24-vRRP基本配置
  17. Web3 的通行证——DID 带来数字身份革命
  18. 【通信】数据通信网络
  19. 亚马逊自然排名提高,能不能通过降价来解决?坑产是什么?排名逻辑分析
  20. Java日志框架学习--JUL和Log4j--上

热门文章

  1. Kali Linux 终端字体配色
  2. 2019, XII Samara Regional Intercollegiate Programming Contest
  3. 锐龙7000PBO温度墙设置
  4. mysql 5.7 安装配置教程(windows 64位)
  5. Valine 一款快速、简洁且高效的无后端评论系统
  6. 利用matlab实现h 控制,利用Matlab实现H∞控制
  7. SUST-ACM-2019届暑期ACM集训热身赛(第二期)题解
  8. 数据类型 varbinary 和 varchar 在 add 运算符中不兼容。
  9. matlab中的measure,关于matlab中awgn函数中参数作用的测试
  10. 会议交流 | DataFunSummit 2022:图机器学习在线峰会