python-qrcode模块生成二维码

安装    pip install qrcode   

qrcode 依赖 Image 这个包:pip install Image  

 

简单生成网页二维码:

import qrcode

img = qrcode.make('https://www.cnblogs.com/liming19680104/p/10291497.html')  #//调用qrcode的make()方法传入url
with open('李明博客.png', 'wb') as f:   #写入文件
    img.save(f)

效果图:

 

 

自定制网页二维码:

复制代码
import qrcode

data = 'https://www.cnblogs.com/liming19680104/p/10291497.html'  #网页地址

# 实例化QRCode生成qr对象
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=10,border=4)
'''
参数1:version: 一个整数,范围为1到40,表示二维码的大小(最小值是1,是个12×12的矩阵),如果想让程序自动生成,将值设置为 None 并使用 fit=True 参数即可
参数2:error_correction: 二维码的纠错范围,可以选择4个常量:
    1. ERROR_CORRECT_L 7%以下的错误会被纠正
    2. ERROR_CORRECT_M (default) 15%以下的错误会被纠正
    3. ERROR_CORRECT_Q 25 %以下的错误会被纠正
    4. ERROR_CORRECT_H. 30%以下的错误会被纠正
参数3:box_size: 每个点(方块)中的像素个数
参数4:border: 二维码距图像外围边框距离,默认为4,而且相关规定最小为4
'''
qr.add_data(data)   # 传入数据
qr.make(fit=True)
img = qr.make_image()   # 生成二维码
img.save('李明博客.png')  # 保存二维码
复制代码

带头像(图片)的二维码:

复制代码
import qrcode
from PIL import Image

data = 'https://www.cnblogs.com/liming19680104/p/10291497.html'  #网页地址
qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=5,
        border=4,
    )
qr.add_data(data)  # 添加数据
qr.make(fit=True)
img = qr.make_image(fill_color="green", back_color="white")  # 生成图片
#fill_color  填充色
#back_color  背景色
icon = Image.open("2013.jpg")   # 添加logo,打开logo照片
img_w, img_h = img.size   # 获取图片的宽高

# 参数设置logo的大小
factor = 6
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)  # 重新设置logo的尺寸

# 得到画图的x,y坐标,居中显示
w = int((img_w - icon_w) / 2)
h = int((img_h - icon_h) / 2)
img.paste(icon, (w, h), mask=None)  # 黏贴logo照
img.save('李明博客.png')  # 保存img
复制代码

效果图:

 

 

 

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(689)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-03-15 python随机数random模块
2019-03-15 随机数random
2019-03-15 时间戳time
点击右上角即可分享
微信分享提示

目录导航