[Python]使用QRCode生成彩色二维码

用Python生成与众不同的二维码,神库:qrcode 一、介绍 1.1 二维码 二维码又称二维条码,常见的二维码为 QR Code,QR 全称 Quick Response。是一个近几年来移动设备上超流行的一种编码方式,在现在的生活中二维码随处可见。我们可以用它支付、浏览网站等,为什么他会这么流行?下面说几个特点: 可存储的信息量大:可容纳多达 1850 个大写字母或 2710 个数字或 1108 个字节或 500 多个汉字。 容错能力强:具有纠错... 阅读详情

一、 安装QRCode模块

  • QRCode模块依赖于Pillow模块,在安装QRCode模块前需要先安装Pillow模块。可使用如下命令安装:
  pip install Pillow
  • QRCode模块安装命令如下:
  pip install qrcode

二、使用QRCode生成二维码

  • 使用make函数生成二维码,这种方法比较简单。举例如下:
import qrcode
img = qrcode.make("Some data here")            #生成二维码,"Some data here"为二维码中的信息
img.save("qrtest.jpg")        #保存二维码,"qrtest.jpg"为图片文件名
  • 如果需要更多控制,使用QRCode类生成二维码。举例如下:
import qrcode
from PIL import Image, ImageDraw
from qrcode.image.pil import PilImage

#自定义图像生成器(定义此类是为了实现彩色二维码)
class MyPilImage(PilImage):
    """
    自定义图像生成器
    """
    fillcolor = "black"
    backcolor = "white"

    def new_image(self, **kwargs):
        self.fillcolor = kwargs.get('fill_color', 'black')
        self.backcolor = kwargs.get('back_color', 'white')
        img = Image.new("RGB", (self.pixel_size, self.pixel_size), self.backcolor)
        self._idr = ImageDraw.Draw(img)
        return img

    def drawrect(self, row, col):
        box = self.pixel_box(row, col)
        self._idr.rectangle(box, fill=self.fillcolor)

#创建QRCode对象
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
    )

#添加信息,生成二维码
qr.add_data('12345678')
qr.make(fit=True)

#生成二维码图像。此处可以省略第一个参数,省略后只能生成黑白二维码
img = qr.make_image(MyPilImage, fill_color="red", back_color="yellow")

#保存图像
img.save("qrtest.png")        #保存二维码,"qrtest.png"为图片文件名


参数说明:

  • version参数是一个1到40的整数,决定二维码的大小(version为1最小,为21x21的矩阵,version每增加1,矩阵就增加4,比如version为2时对应25x25的矩阵,为3时对应29x29的矩阵,依次类推)
  • error_correction表示纠错能力,参数
  • List item

为4个常数,对应4个级别:

ERROR_CORRECT_L:%7或更少的错误可以被纠正;
ERROR_CORRECT_M:%15或更少的错误可以被纠正,此为默认值;
ERROR_CORRECT_Q:%25或更少的错误可以被纠正; ERROR_CORRECT_H:30%或更少的错误可以被纠正。

对于同样大小的二维码,纠错能力越强,存储的信息就越少。

  • box_size参数决定了二维码色块的大小,即二维码矩阵的每一个点对应的色块大小(以像素为单位)
  • border参数决定了二维码边框的宽度,即外围空白的宽度。该参数的值表示box_size的倍数,例如,当box_size为10,border为1时,外围空白宽度为10;box_size为10,border为2时,外围空白宽度为20
  • version、box_size、border共同决定了二维码图片的像素数。比如,当version为1、box_size为10,border为2时,矩阵为21x21;二维码内部宽度为210(21x10);外围空白宽度为20(2x10),两侧空白共40;二维码边长为250(210+20x2)。计算方法为:(21 + (version - 1) * 4 + border * 2) * box_size
  • fit参数设轩是否自动根据信息内容多少调整二维码大小(对应version的值)
  • 当fit为True(默认值)时,自动根据内容调整二维码,此时version可设为None,当version设为某个值时,调整后的二维码不会小于该值对应的版本大小,如果信息量超出了该版本的容量,自动增加尺寸(不会减小);当fit为False时,不会自动调整二维码大小(此时version不能设为None),如果信息量超出了该版本二维码容量,将会报错
  • fill_color和back_color分别设定的二维码色块颜色和背景颜色,默认为"black"和"white"。颜色必须是web支持的颜色名称,如果颜色不支持,将会报错。前景色一般要深色,背景色为浅色,否则可能无法识别

三、生成带LOGO的二维码

#导入模块
import qrcode
from PIL import Image

#创建QRCode对象
qr = qrcode.QRCode(
		version = 1,
		error_correction = qrcode.constants.ERROR_CORRECT_H,
		box_size = 10,
		border = 1
		)

qr.add_data(data_str)         #添加信息,data_str为拟创建二维码中的信息字符串
qr.make(fit=True)        #生成二维码

img = qr.make_image()        #获取二维码图像
img = img.convert("RGBA")        #转换图像格式

img_w,img_h = img.size      #获取图像宽、高

logo = Image.open(logoptah)      #打开logo图像,logopath为logo的文件名和路径

factor = 4      #比例因子,即logo宽度为二维码图像的1/4左右

size_w = int(img_w / factor)      #logo宽
size_h = int(img_h / factor)      #logo高

logo_w, logo_h = logo.size      #获取logo实际宽、高

if logo_w > size_w:      #logo宽度小于等于size_w
	logo_w = size_w

if logo_h > size_h:      #logo高度小于等于size_h
	logo_h = size_h

logo = logo.resize((icon_w,icon_h),Image.ANTIALIAS)      #缩放logo图片
logo = logo.convert("RGBA")      #转换logo格式

w = int((img_w - logo_w)/2)      #计算粘贴位置
h = int((img_h - logo_h)/2)

img.paste(logo,(w,h))      #将logo粘贴到二维码图像

img.save("qr.png")        #保存二维码,"qr.png"为图片文件名
这份完整版的Python全套学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪↓

Python——生成二维码 1 使用 MyQR 生成二维码 先安装 myqr,使用 cmd 命令: pip install myqr 如果安装失败,可以尝试使用管理员身份启动 cmd,再次安装试试 python 代码为: from MyQR import myqr; myqr.run(words="https://www.baidu.com", picture="C:\\Users\\ChengYuanFeng\\Deskt... 阅读详情

相关推荐

python 系列 06 -生成及解析二维码

二维码不止一种,本文介绍最常见的QR二维码。由于不能发二维码截图,所以所有的执行结果都隐去了。

短尾流浪猫 1569

使用Python生成二维码

PyQRCode是一个功能强大的Python库,可以灵活地生成二维码,并支持自定义样式和颜色。上述代码中,我们首先导入pyqrcode库,然后定义一个data变量,接着使用pyqrcode.create()函数生成二维码对象。通过调用二维码对象的png()方法,可以生成自定义样式的二维码图像,并指定颜色、边框宽度和安静区域的大小。本文介绍了使用Python生成二维码的多种方法,包括简单二维码、自定义样式二维码、带Logo的二维码和艺术二维码。

很酷的站长的博客 7999

python之实现彩色二维码

【代码】python之实现彩色二维码。

我不是码农的博客~~~ 573

Python qrcode模块(生成二维码)

Python qrcode模块(生成二维码)一、Qrcode类解释二、Qrcode类构造函数及参数含义1、version=None2、error_correction=constants.ERROR_CORRECT_M3、box_size=10,4、border=45、image_factory=None6、mask_pattern=None三、Qrcode类常用方法1、qr.make(self, fit=True)2、qr.add_data(self, data, optimize=20)3、qr.pri

chenliang1038的博客 6562

使用Python编程创建个性化的动态彩色二维码

通过使用Python编程语言和MyQR库,您可以轻松生成个性化的动态彩色二维码。您可以根据自己的需求调整二维码的颜色、背景图像和其他参数。二维码的应用非常广泛,您可以将其用于各种场景,例如商业推广、活动门票等。在本文中,我将向您展示如何使用Python编程语言和MyQR库创建个性化的动态彩色二维码。在我们开始编写代码之前,我们需要导入MyQR库和其他必要的库。现在,我们可以开始生成动态彩色二维码了。现在,我们可以调用上述函数来生成个性化的动态彩色二维码。参数指定了保存动态二维码的文件名。

DevGOOD的博客 347

python----生成二维码

二维码qrcode库MyQR库解析二维码 使用python生成二维码,手机扫描二维码访问指定网页地址。 qrcode库 qrcode地址 安装 python -m pip install qrcode 生成一个简单二维码,扫码跳转到我的博客 import qrcode url = "https://blog.youkuaiyun.com/weixin_45228198?type=blog" # PIL Image对象, 二维码 my_code = qrcode.make(data=url) my_code.

weixin_45228198的博客 1511

python之qrcode模块生成二维码

用Python的qrcode包来生成二维码很简单 一、前期准备: pip install qrcode qrcode 依赖 Image 这个包: pip install Image 二、安装好之后就可以通过代码实现二维码了 - 1. 简单生成二维码: import qrcode //模块导入 //调用qrcode的make()方法传入url或者想要展示的内容 img = qrcode.make('http://www.baidu.com') //写入文件 with open('tes

小韭菜的博客 7675

学习使用turtlebot2——ROS上安装turtlebot2

安装环境:    安装Ubuntu 14.04版本和ROS Indigo    参考:http://wiki.ros.org/turtlebot/Tutorials安装步骤    有两种安装方法,一种直接的安装命令,另外一种源码编译安装,区别在于:直接安装命令是安装在电脑默认路径/opt/ros/indigo/share里面不便于更改代码,因为默认路径下文件一般有访问权限,无法直接更改,需要使用s...

weixin_42670641的博客 2531

使用 Python 生成二维码

使用 Python 生成二维码。 现在二维码应用随处可见,生活中二维码可以说是无处不在了:加好友,付钱,扫个码。python生成二维码非常方便。本文就来讲解如何用python开发生成二维码。

cnds123的专栏 3万+

暗月项目七详解

本文围绕“暗月靶场项目七”展开,记录了一次从外网 Web 入口逐步深入内网并最终获取域控目标的完整实训过程。

Re_K123的博客 419

Hive数据迁移

【迁移背景】 本次需要将老集群的hive数据(共30多张表)迁移至新集群中。 老集群版本为CDH5.13,未启用kerberos; 新集群版本为CDH5.14,启用了kerberos。 由于cloudera官方文档说明,在5.x的版本不支持从未启用kerberos的集群与启用了kerberos的集群之间的数据复制。因此无法通过bdr方式进行数据同步。于是采用手工方式进行测试验证。 第一步...

wangkuangood3200的专栏 470

python简单二维码生成代码,python生成二维码教程

二维码又称二维条码,常见的二维码为 QR Code,QR 全称 Quick Response。是一个近几年来移动设备上超流行的一种编码方式,在现在的生活中二维码随处可见python自学行吗。我们可以用它支付、浏览网站等,为什么他会这么流行?可存储的信息量大:可容纳多达 1850 个大写字母或 2710 个数字或 1108 个字节或 500 多个汉字。容错能力强:具有纠错功能,这使得二维条码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,损毁面积达 30% 仍可恢复信息。

2301_81895949的博客 778

wsl2上运行带有Isaac Gym的程序报错: GPU Pipeline: disabled

显示GPU Pipeline:disabled,查找相关文档发现是WSL2目前不支持Isaac Gym,时,想要在wsl2上运行,最后报错如下。

2303_78660611的博客 958

uniapp中qrcode生成二维码后传的参数不见了_用Python生成与众不同的二维码,神库:qrcode

一、介绍 1.1 二维码 二维码又称二维条码,常见的二维码为 QR Code,QR 全称 Quick Response。是一个近几年来移动设备上超流行的一种编码方式,在现在的生活中二维码随处可见。我们可以用它支付、浏览网站等,为什么他会这么流行?下面说几个特点:可存储的信息量大:可容纳多达 1850 个大写字母或 2710 个数字或 1108 个字节或 500 多个汉字。容错能力强:具有纠错功能,...

weixin_39851887的博客 418

基于Vivado2025的UltraScale+时序收敛优化实战案例

深入解析在Vivado2025环境中针对UltraScale+架构的时序收敛挑战,结合实际设计案例,分享关键优化策略与操作技巧,显著提升设计性能与收敛效率。vivado2025的更新特性为时序优化带来新机遇。

weixin_33660045的博客 347

【WRF-Urban】URBPARM_LCZ.TBL 查找表解释及内容

URBPARM_LCZ.TBL 查找表解释及内容

WW、forever的博客 1754

Python学习之生成带logo背景图的二维码(静态和动态图)

以上就是Python代码对二维码生成处理的示例,根据不同需求可以选择qrcode模块或者MyQR模块来实现,希望对看到的小伙伴有帮助作用。

分享型博主 2260

PHP与Node.js的对比及优缺点分析

PHP和Node.js是两种常用的服务器端编程语言,它们在不同的应用场景下各有优势和劣势。本文将全方位比较PHP和Node.js的特点,以及它们在编程中的优缺点,并提供相应的源代码示例供参考。需要注意的是,本文只是对PHP和Node.js的一些优缺点进行了简要介绍,实际应用中还需要考虑其他因素,如团队经验、项目规模和预算等。最终的选择应该基于全面的评估和需求分析。PHP:PHP是一种同步阻塞的编程语言,它的处理方式是一次只处理一个请求。Node.js:Node.js的性能较高,特别适合处理高并发的请求。

ByteSparkX的博客 888

python简单二维码生成代码,python生成二维码的代码

先来看看一维码、二维码,然后深入了解一下QR码,简单点说QR码是二维码的一个种类!!!二维码(2-Dimensional Bar Code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息火车头采集器伪原创插件。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。

chatgpt001的博客 2712

【GlobalMapper精品教程】074:从Lidar点云创建3D地形模型

本文基于地形点云数据,基于泊松方法、贪婪三角形测量方法和阿尔法形状创建3d地形模型。

智慧空间实验室 2171

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python 二维码_用 Python 生成有“灵魂”的二维码

本文作者:HelloGitHub-LITTLECHIEH这是 HelloGitHub 推出的《讲解开源项目》系列,今天给大家推荐一个 Python 开源生成二维码的项目——qrcode一、介绍1.1 二维码二维码又称二维条码,常见的二维码为 QR Code,QR 全称 Quick Response。是一个近几年来移动设备上超流行的一种编码方式,在现在的生活中二维码随处可见。我们可以用它支付、浏览网...

weixin_39924179的博客 123

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python中集成QR code生成自己想要的二维码

今天介绍了QR二维码的一些基础知识,并介绍了使用python的第三方库生成普通二维码、炫彩二维码,通过本篇博客你可以快速学会如何生成二维码!!!

一个非常Cool的人 5128

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python--宣传篇--personal-qrcode个性二维码

【代码】python--宣传篇--personal-qrcode个性二维码。

stqer的博客 794

使用 python 生成二维码

文章参考:如何使用 Python 生成酷炫的二维码   一、二维码的结构:(图片来源网络) 1、功能图形 功能图形是不参与编码数据的区域。它包含空白区、位置探测图形、位置探测图形分隔符、定位图形、校正图形五大模块。 空白区:空白区顾名思义就是要留空白。因此,这里不能有任何图样或标记,这样才能保证 QR 能被识别。 位置探测图形:这个有点类似中文的“回”字。在 QR 码中...

JonathanTang的博客 1022

用 Python 生成有“灵魂”的二维码

本文作者:HelloGitHub-LITTLECHIEH 这是 HelloGitHub 推出的《讲解开源项目》[1]系列,今天给大家推荐一个 Python 开源生成二维码的项目——qrcode 一、介绍 1.1 二维码 二维码又称二维条码,常见的二维码为 QR Code,QR 全称 Quick Response。是一个近几年来移动设备上超流行的一种编码方式,在现在的生活中二维码随处可见...

HelloGitHub 的博客 857
上一篇: 手把手教你配置最漂亮的PyCharm界面,Python程序员必备
下一篇: Python和Python解释器
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2839原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值