
从环境搭建到源码运行:5分钟上手的实操指南
先搞定“地基”:3步完成环境准备
很多人一听到“写代码”就打退堂鼓,其实现在的Python环境搭建比装微信还简单。我 你先检查电脑里有没有Python,按下Win+R
输入cmd
打开命令提示符,输入python version
,如果显示3.6以上版本(比如Python 3.9.7)就可以直接用,低于这个版本的话,去Python官网下载最新版,安装时记得勾选“Add Python to PATH”,不然之后调用会很麻烦。
接下来要装两个核心库,还是在命令提示符里,复制粘贴这两行命令:
pip install qrcode # 生成二维码的核心库
pip install PIL # 处理图片的库,用于添加logo等功能
我去年帮同事做年会签到二维码时,他电脑上pip命令总报错,后来发现是因为没开管理员权限,你如果遇到类似问题,可以右键“命令提示符”选择“以管理员身份运行”再试。安装成功后,你可以输入pip list
检查一下,看到qrcode和Pillow(PIL的升级版)出现在列表里就没问题了。
完整源码解析:每一行代码都给你标好了注释
别被“源码”吓到,其实就是几行简单的指令,我把完整代码和注释都整理好了,你直接复制到记事本就能用。先看这段基础版源码,能生成最常用的黑白二维码:
import qrcode # 导入二维码生成库
from PIL import Image # 导入图片处理库
设置二维码内容(可以是网址、文字、联系方式等)
data = "https://www.example.com" # 这里替换成你要生成二维码的内容
创建二维码对象,设置基本参数
qr = qrcode.QRCode(
version=5, # 二维码大小:1-40,数字越大二维码越复杂(容纳信息越多)
error_correction=qrcode.constants.ERROR_CORRECT_M, # 容错率:M级(可遮挡15%)
box_size=10, # 每个小方格的像素大小
border=4, # 二维码边框宽度(默认4个方格)
)
添加内容到二维码
qr.add_data(data)
qr.make(fit=True) # 自动调整大小以适应内容
生成二维码图片并保存
img = qr.make_image(fill_color="black", back_color="white") # 设置颜色
img.save("basic_qrcode.png") # 保存为PNG图片,文件名可以自定义
print("二维码生成成功!文件保存在当前文件夹")
你可能会问,这些参数都是什么意思?举个例子,version=5
代表二维码是5号大小,大概能存300个字符,日常用完全够了;error_correction
是容错率,我 选M级,之前帮朋友做产品说明书二维码,他不小心把边角折了一下,结果照样能扫,就是因为M级容错率允许遮挡15%的面积。
运行这段代码的步骤也超简单:把上面的代码复制到记事本,把data
里的网址改成你要的内容(比如“微信公众号:XXX”或电话号码),然后把文件后缀改成.py
(比如my_qrcode.py
),双击文件就能运行——对,就是这么简单,不用打开复杂的编程软件。如果弹出黑色窗口闪一下就消失,别慌,那是运行成功了,你去保存文件的文件夹里找,就能看到生成的basic_qrcode.png
了。
自定义二维码样式:让你的二维码既实用又吸睛
3个小技巧,让二维码告别“路人感”
基础版二维码学会后,咱们来加点“小心机”。我之前帮社团做招新二维码时,用这几招把黑白二维码改成了社团主题色,还加了logo,结果扫码率比普通二维码高了不少——毕竟大家都喜欢好看的东西嘛。
第一个技巧:换颜色
默认的黑白色太单调?你可以在make_image
函数里改fill_color
和back_color
参数,比如改成公司VI色:
img = qr.make_image(fill_color="#E63946", back_color="#F1FAEE") # 红色前景+浅蓝背景
不过要注意,颜色对比度别太低,之前有同学用浅灰配白色,结果手机扫半天扫不出来。我 你用草料二维码的颜色对比度检测工具先检查一下,确保扫码顺畅。
第二个技巧:加logo
想让二维码更有辨识度?给它加个logo!比如店铺二维码加店名logo,活动二维码加活动主题图。步骤很简单:准备一张正方形的logo图片( 小于二维码的1/4大小,不然会影响扫码),然后用PIL库把logo贴到二维码中间:
# 生成基础二维码
img = qr.make_image(fill_color="black", back_color="white").convert("RGBA")
打开logo图片
logo = Image.open("logo.png").convert("RGBA") # logo.png是你的logo文件名
logo_size = int(img.size[0] / 4) # logo大小设为二维码的1/4
logo = logo.resize((logo_size, logo_size), Image.LANCZOS) # 调整logo尺寸
计算logo位置(居中)
position = ((img.size[0]
logo_size) // 2, (img.size[1] logo_size) // 2)
粘贴logo到二维码
img.paste(logo, position, mask=logo)
img.save("qrcode_with_logo.png")
这里有个坑要注意:logo图片如果有透明背景,记得用convert("RGBA")
,不然粘贴后可能会有白边。我之前帮咖啡店做二维码时,用了带透明底的咖啡豆logo,一开始没转RGBA,结果白边特别明显,后来改了这行代码就好了。
第三个技巧:调整容错率
二维码被遮挡一点还能扫吗?这取决于error_correction
参数。不同参数的容错能力不一样,我整理了一张表,你可以根据需求选:
参数值 | 容错率 | 适用场景 | 二维码复杂度 |
---|---|---|---|
ERROR_CORRECT_L | 7% | 纯文字/网址(无遮挡) | 最简单(小方格少) |
ERROR_CORRECT_M | 15% | 普通二维码(轻微遮挡) | 中等 |
ERROR_CORRECT_Q | 25% | 加logo/有较多遮挡 | 较复杂 |
ERROR_CORRECT_H | 30% | 户外广告/易磨损场景 | 最复杂(小方格多) |
比如加logo时,我通常会把容错率设为Q级或H级,这样即使logo遮住一部分,扫码也不受影响。之前帮一个音乐节做海报二维码,海报上二维码旁边有装饰图案,用了H级容错率,结果就算被图案挡住一小块,照样能扫出来。
其实生成二维码真的没那么难,我见过完全不懂编程的奶茶店老板,用这套方法给自己的新品活动做了带奶茶杯logo的二维码,还得意地跟我说“现在我也是会写代码的人了”。你也可以试试,把你的二维码用在公众号关注、活动报名、产品说明或者个人名片上——对了,如果你用这个方法做了二维码,欢迎回来告诉我你做了什么用途,说不定你的创意能给大家更多灵感呢!
想给二维码换个颜色其实特别简单,你平时看到的品牌二维码是不是都有自己的主题色?比如奶茶店可能用橙色,咖啡店用棕色,你也可以把自己的二维码改成喜欢的颜色。在代码里找到fill_color
和back_color
这两个设置就行,fill_color
是二维码小方格的颜色,back_color
是背景色。你要是对颜色名称熟悉,直接写“red”“blue”这种英文单词就行;要是想用更精准的品牌色,就用十六进制色值,比如“#FF5733”这种(这是一个亮橙色,我之前帮一家汉堡店做活动二维码用过,挺显眼的)。
不过这里有个小坑得注意,颜色别太浅或者对比度太低。我之前帮朋友的花店做二维码,她非要用浅粉色背景配白色小方格,结果打印出来扫半天没反应,后来才发现是颜色太接近了,手机摄像头识别不出来。你改完颜色最好用微信扫一扫试试,或者去草料二维码那种在线工具检查一下对比度,确保扫码顺畅。
再说说调整二维码大小,其实是调三个地方的设置,你可以根据自己的用途慢慢试。第一个是box_size
,这个控制二维码里每个小方格的像素大小,比如设成10的话,每个小方格就是10像素,设成15就大一点。我平时做手机上用的二维码,一般把box_size
设10-12,扫起来清晰又不会占太多屏幕;要是准备打印在海报上,就可以设到15-20,放大了也不会模糊。
第二个是version
参数,这个数字从1到40,数字越大二维码越复杂,能存的内容越多,尺寸也越大。日常用的话,version设5-10就够了,比如存个网址或者联系方式,version=5的二维码大概有3厘米见方,适合印在名片上;要是存的内容多,比如一段长文字或者WiFi信息,就可以把version调到8-10,二维码会稍微大一点,但扫起来还是没问题。
最后是border
,这个控制二维码的边框宽度,默认是4个小方格,我觉得刚好,太窄了显得小气,太宽了又占地方。不过你要是想让二维码看起来更有设计感,也可以稍微调一下,比如设成5,边框宽一点,打印在白色背景上会更明显。之前帮公司做宣传册二维码,设计师就特意让我把border从4调到5,说这样在页面上更协调,你也可以根据实际排版试试。
安装Python或库时提示“pip不是内部或外部命令”怎么办?
这通常是因为Python未添加到系统环境变量。如果是刚安装Python,可重新运行安装程序,勾选“Add Python to PATH”选项;若已安装,可手动添加环境变量:右键“此电脑”→“属性”→“高级系统设置”→“环境变量”,在“系统变量”的“Path”中添加Python安装路径(通常是C:Users用户名AppDataLocalProgramsPythonPython版本号Scripts)。添加后重启命令提示符即可使用pip命令。
生成的二维码内容可以是哪些类型?有字数限制吗?
二维码内容支持多种类型,包括网址(如https://www.example.com)、文字(如“联系电话:13800138000”)、联系方式(如“mailto:test@example.com”)、WiFi信息(如“WIFI:T:WPA;S:网络名;P:密码;;”)等。字数限制与二维码版本(version参数)相关,版本1-40,数字越大可容纳信息越多:版本5约可存300个字符,版本10约可存1000个字符,日常使用选择version 5-10即可满足需求。
如何修改二维码的颜色和大小?
修改颜色需调整代码中fill_color(前景色)和back_color(背景色)参数,可使用颜色名称(如“red”“blue”)或十六进制色值(如“#E63946”);修改大小有两个关键参数:box_size控制单个方格的像素大小(如box_size=10表示每个方格10像素),version控制二维码复杂度(数字越大二维码尺寸越大, 根据内容多少调整),border参数可调整边框宽度(默认4个方格,数值越大边框越宽)。
添加logo后二维码扫不出来怎么办?
可能原因有两个:一是logo尺寸过大, 控制在二维码尺寸的1/4以内(如二维码边长200像素,logo边长不超过50像素);二是容错率设置过低,可将error_correction参数调整为ERROR_CORRECT_Q(容错率25%)或ERROR_CORRECT_H(容错率30%),同时确保logo图片背景透明(使用PNG格式),避免遮挡过多二维码关键区域。
生成的二维码可以保存为哪些图片格式?
支持多种常见图片格式,保存时通过修改文件名后缀实现:如保存为PNG格式用“qrcode.png”,JPG格式用“qrcode.jpg”,BMP格式用“qrcode.bmp”等。其中PNG格式支持透明背景,适合添加logo或需要在不同背景中使用的场景;JPG格式文件体积较小,适合网络传输,可根据实际需求选择。