
准备工作:3分钟搭好Python环境
很多人一听到“写代码”就打退堂鼓,其实现在的Python环境搭建比装微信还简单。我刚开始学的时候也以为很难,后来发现只要跟着这几步走,哪怕是电脑小白也能搞定。
首先你得安装Python本身。别去那些乱七八糟的网站下载,直接去Python官方网站,首页就有“Download Python X.X.X”的大按钮,点进去选对应你电脑系统的版本(Windows选Windows Installer,Mac选macOS 64-bit universal2 installer)。安装的时候记得勾选“Add Python to PATH”,这个选项能让你的电脑认识Python命令,省得后面还要手动配环境变量——我之前帮我妈装的时候没勾这个,结果后面输命令一直报错,折腾了半小时才发现问题,你可别犯同样的错。
装好Python后,还需要一个写代码的“记事本”。新手推荐用VS Code,微软出的免费编辑器,界面简单还能自动补全代码。去VS Code官网下载安装,打开后在左侧插件栏搜“Python”,装那个微软官方的Python插件,这样写代码的时候会有语法提示,不容易出错。
最后一步是安装生成二维码的核心工具——qrcode库和PIL库。qrcode是专门生成二维码的库,PIL(现在叫Pillow)是处理图片的库,比如给二维码换颜色、加logo都靠它。安装方法超简单:按Win+R键打开“运行”,输入cmd回车,打开命令提示符,然后输入两行命令:
pip install qrcode pip install pillow
输完按回车,等个10秒左右就装好了。如果出现“pip不是内部命令”,别慌,大概率是之前没勾“Add Python to PATH”,这时候重新运行Python安装包,选“Modify”,把“Add Python to environment variables”勾上就行。我去年帮同事装的时候,他就是没勾这个,折腾了三回才弄好,所以你安装时一定要注意这个细节。
核心步骤:从基础二维码到个性化设计
环境搭好就可以开始写代码了,别担心,整个过程只需要复制粘贴,我会把每一行代码的作用讲清楚,你跟着做就行。
3行代码生成基础二维码
最简单的二维码生成只需要3行代码,我第一次写的时候都惊了,原来这么简单。打开VS Code,新建一个文件,保存为“my_qrcode.py”(注意后缀是.py),然后复制这几行代码:
import qrcode # 导入二维码生成库 img = qrcode.make("https://www.example.com") # 把网址换成你要生成二维码的内容
img.save("my_first_qrcode.png") # 保存二维码图片
把代码里的“https://www.example.com”换成你需要的内容,比如你的公众号文章链接、联系方式“电话:138XXXXXXXX”,甚至是一段文字。然后右键点击文件,选“Run Python File in Terminal”,运行完后,你会发现和代码文件同一个文件夹里多了一张“my_first_qrcode.png”的图片,打开就是一个黑白二维码。
这里有个小细节:如果你想生成文本内容的二维码,直接把网址换成文字就行,比如qrcode.make("欢迎关注我的公众号")
。我第一次帮朋友生成店铺地址二维码时,就是直接把“XX路XX号”填进去,扫码就能看到文字,特别方便。不过要注意,内容太长的话二维码会很密, 控制在100字以内,否则扫码识别可能变慢。
5步打造个性化二维码
黑白二维码太普通?别急,咱们来给它“化个妆”,换颜色、加logo、调整样式,5步就能让二维码颜值翻倍。
第一步是调整颜色。默认的二维码是黑块白背景,其实可以换成任何颜色。比如把方块换成蓝色,背景换成浅灰色,只需要在代码里加几行配置:
import qrcode qr = qrcode.QRCode(version=1, box_size=10, border=4) # version控制二维码大小(1-40),box_size是每个小方块的像素,border是边框宽度
qr.add_data("https://www.example.com") # 添加内容
qr.make(fit=True) # 自动调整大小
img = qr.make_image(fill_color="blue", back_color="lightgray") # 设置颜色
img.save("colored_qrcode.png")
这里的fill_color
和back_color
可以填颜色名称(比如“red”“green”),也可以填十六进制色值(比如“#FF5733”),我一般会去草料二维码的颜色库找搭配,那里有现成的配色方案,不容易出错。
第二步是添加logo。在二维码中间放个品牌logo会更专业,不过要注意logo不能太大,否则会挡住二维码的定位点,导致无法识别。我之前帮朋友的咖啡店做二维码时,一开始把logo做得太大,结果50%的手机都扫不出来,后来调整到二维码尺寸的1/5大小就没问题了。具体操作是用Pillow库打开logo图片,粘贴到二维码上:
import qrcode from PIL import Image # 导入图片处理库
qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_H) # 设置高容错率
qr.add_data("https://www.example.com")
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white").convert('RGBA')
打开logo图片
logo = Image.open("logo.png").convert('RGBA')
调整logo大小为二维码的1/5
logo_size = int(img.size[0] / 5)
logo = logo.resize((logo_size, logo_size), Image.LANCZOS)
计算logo位置(居中)
pos = ((img.size[0]
logo_size) // 2, (img.size[1] logo_size) // 2)
粘贴logo
img.paste(logo, pos, logo)
img.save("qrcode_with_logo.png")
这里有个关键参数error_correction
,也就是容错率,我做了个表格对比不同容错率的区别,你可以根据需要选:
容错率等级 | 可遮挡面积 | 适用场景 |
---|---|---|
ERROR_CORRECT_L | 7% | 内容固定、无需遮挡(如网址) |
ERROR_CORRECT_M | 15% | 普通场景(默认选项) |
ERROR_CORRECT_Q | 25% | 需要加小logo、轻微遮挡 |
ERROR_CORRECT_H | 30% | 加大型logo、可能被部分遮挡(如海报边缘) |
像加logo这种情况,我通常会选ERROR_CORRECT_H,容错率最高,即使logo占了30%的面积也能识别。之前帮一个活动做宣传海报,二维码边缘被设计元素挡住了一小块,就是因为用了高容错率,扫码完全没问题。
最后一步是调整二维码样式,比如把方块换成圆形,或者添加渐变颜色。不过这个需要稍微复杂一点的代码,如果你感兴趣,可以试试qrcode库的matrix
属性,获取二维码的点阵数据,然后用Pillow绘制自定义形状。我之前在GitHub上看到有人用这个方法做了个“爱心二维码”,把方块换成了小爱心,特别适合情人节宣传,你也可以发挥创意试试。
好了,按照这些步骤,你已经能做出各种样式的二维码了。记得生成后用手机扫一下测试,确保能正常识别——我每次做完都会用微信、支付宝、浏览器分别扫一遍,保险起见。如果你按这些方法试了,欢迎回来告诉我效果,或者遇到什么问题,我可以帮你看看怎么解决!
其实啊,不想写代码的话,在线工具真的是懒人福音,我自己刚开始学Python之前,也靠这些工具应急。比如草料二维码,打开网站直接就能用,左边输内容(网址、文字都行),右边就能实时看到二维码效果,换颜色、加logo点几下鼠标就搞定,连我妈都能跟着做。还有国外的QR Code Generator,虽然是英文界面,但图标很直观,选“Colors”就能调渐变,选“Logo”就能上传图片,生成的二维码清晰度也不错。我去年帮小区物业做防疫通知二维码,就是用草料在线生成的,从复制通知文字到保存图片,全程不到2分钟,物业大叔还夸我“年轻人就是会用工具”。不过这些工具适合偶尔用用,简单改改样式还行,要是想弄点特别的,比如每个二维码带不同编号,或者存到本地文件夹自动命名,就不太方便了。
但在线工具的坑也得提一嘴。免费版基本都带广告,生成的二维码底下可能会有“草料二维码提供技术支持”的小字,要是做正式海报就得开会员去水印,我之前帮朋友的甜品店做活动码,免费版的水印刚好在二维码旁边,P图都不好P,最后还是花了9.9开了个月会员。批量生成更是大难题,比如你想给100个客户每人做个专属二维码(每个码带不同手机号),在线工具要么限制数量(免费版最多5个),要么就得一个个手动改内容、保存,累得手抽筋。这时候Python的好处就显出来了,我上个月帮一家教育机构批量生成学员报到二维码,用个for循环,把学员名单存成Excel,代码跑一遍,200个带不同姓名和学号的二维码自动存到文件夹里,连命名都是“学员XXX_报到码.png”,比手动弄快了不止10倍。所以啊,你要是偶尔用一次,在线工具够了;但要是经常做,或者需要批量弄,Python真的值得试试,反正基础操作也不难,学会了还能装个小X呢。
安装Python时忘记勾选“Add Python to PATH”怎么办?
如果安装时没勾选“Add Python to PATH”,可以重新运行Python安装包,选择“Modify”(修改)选项,在组件列表中勾选“Add Python to environment variables”,完成后点击“Install”即可。如果已经安装完成,也可以手动添加环境变量:Windows系统中,右键“此电脑”→“属性”→“高级系统设置”→“环境变量”,在“系统变量”中找到“Path”,点击“编辑”,添加Python的安装路径(通常是“C:Users你的用户名AppDataLocalProgramsPythonPythonXX”和“…Scripts”),完成后重启命令提示符即可。
二维码能生成多少文字内容?会不会太长扫不出来?
二维码的内容长度没有严格限制,但 控制在100字以内。内容过长会导致二维码的“点阵”变密(小方块增多),扫码时手机需要处理更多信息,可能出现识别慢或识别失败的情况。如果需要存储长文本(如文章摘要),可以先把文本上传到在线文档(如腾讯文档、石墨文档),生成文档链接,再用链接生成二维码,这样既缩短内容长度,又方便扫码查看完整内容。
给二维码加logo后扫不出来,是什么原因?
加logo后扫不出,最常见的原因是logo尺寸过大或容错率设置过低。 logo大小控制在二维码尺寸的1/5以内(比如二维码宽200像素,logo宽不超过40像素),避免遮挡二维码的三个定位点(角落的大方块)。 生成时将容错率设置为最高等级(ERROR_CORRECT_H),可允许30%的面积被遮挡仍能识别。如果logo有透明背景,确保保存为PNG格式,避免白色背景遮挡二维码图案。
用手机扫码时提示“无法识别”,该怎么解决?
首先检查二维码内容是否正确(比如链接是否有误、文字是否乱码),可以用文本编辑器打开代码文件核对。其次观察二维码是否清晰:如果图片模糊(如压缩过度)、颜色对比度低(如浅灰色方块配白色背景),可能导致识别失败, 重新生成时调高图片分辨率(box_size参数设为10以上),选择深色方块(黑、蓝、绿等)配浅色背景(白、浅灰、浅黄等)。 部分手机扫码软件对特殊样式二维码兼容性较差,可尝试用微信、支付宝、浏览器等多个APP扫码测试。
除了Python,还有其他简单的二维码生成工具吗?
如果暂时不想学Python,也可以用在线工具快速生成二维码,比如草料二维码、QR Code Generator等,操作简单且支持基础个性化设置(换颜色、加logo)。但在线工具可能有广告、水印,或限制批量生成功能。如果需要批量生成带参数的二维码(如每个用户专属二维码),Python的qrcode库配合循环代码会更高效灵活。对于编程新手,先从在线工具上手,熟悉后再尝试Python,能更好理解二维码生成的原理~