

统一声明:
1.本站联系方式QQ:709466365 TG:@UXWNET 官方TG频道:@UXW_NET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责! 2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET 3.免实名域名注册购买- 游侠云域名 4.免实名国外服务器购买- 游侠网云服务
准备工作:从环境搭建到核心库选择
在开始写代码前,咱们得先把“工具”准备好。就像做饭需要锅碗瓢盆,写Python代码也需要基础环境和“专用工具”(也就是库)。这部分我会手把手带你走,你跟着做,10分钟就能准备好所有东西。
10分钟搞定Python环境搭建
不管你用的是Windows、Mac还是Linux,环境搭建都只有3步,我以Windows为例(Mac和Linux操作类似,区别只是打开终端的方式):
第一步,安装Python。你直接打开Python官网(https://www.python.org/downloads/nofollow),点“Download Python X.X.X”(X.X.X是最新版本,比如3.12.0),下载后双击安装,记得勾选“Add Python to PATH”(这步很重要,不然后面命令用不了),然后一路点“Next”就行。安装完后,按Win+R,输入“cmd”打开命令提示符,输入python version
,如果显示“Python 3.X.X”,说明安装成功了。
第二步,配置pip(Python的“应用商店”)。pip是用来安装各种库的工具,Python安装时会自带,但最好更新一下。在命令提示符里输入python -m pip install upgrade pip
,等它跑完就行。我之前帮朋友装的时候,他没更新pip,结果后面安装库总报错,更新后就好了——这个小细节别忽略。
第三步,验证环境。在命令提示符里输入pip list
,如果能看到一堆已安装的库(比如pip、setuptools),说明环境没问题了。要是你看到红色的错误提示,别慌,大概率是第一步没勾选“Add Python to PATH”,卸载重装时记得勾上就行。
3个核心库对比:选对工具少走弯路
写二维码生成源码,最关键的是选对“专用工具”——也就是Python库。我对比过5个常用的库,最后筛选出3个适合零基础的,你可以根据自己的需求选(后面实战我会用qrcode库,因为它最简单,自定义功能也够日常用):
库名称 | 安装命令 | 特点 | 自定义程度 | 适合人群 |
---|---|---|---|---|
qrcode | pip install qrcode | 轻量、文档全、社区活跃 | 高(支持颜色、logo、容错率) | 零基础、需要自定义样式 |
segno | pip install segno | 生成速度快、支持SVG格式 | 中(基础样式自定义) | 需要生成矢量图(放大不失真) |
pyqrcode | pip install pyqrcode | 代码简洁、适合生成纯文本二维码 | 低(样式调整功能少) | 只需要基础二维码,不求样式 |
表中这3个库我都用过,qrcode库是最推荐的——它的文档(https://pypi.org/project/qrcode/nofollow)写得像“说明书”一样详细,连“怎么改二维码角落的小方块颜色”都有例子。去年我带朋友做的时候,一开始用了pyqrcode,结果他想加logo怎么都弄不成,换成qrcode后,跟着文档改了3行代码就搞定了。所以接下来的实战,咱们就用qrcode库,你现在可以在命令提示符里输入pip install qrcode
和pip install pillow
(pillow是处理图片的库,用来加logo),提前把库装好。
实战开发:手把手写二维码生成源码
准备工作做完,现在进入最核心的部分——写代码。别紧张,我会把代码拆成“基础版”“进阶版”“完整工具版”,每一步都告诉你“这段代码是干嘛的”“为什么这么写”,你跟着复制粘贴,改几个参数就能用。
基础版:3行代码生成第一个二维码
咱们先从最简单的开始:生成一个纯黑白、包含指定内容(比如网址、文字)的二维码。你打开电脑上的文本编辑器(Windows用“记事本”,Mac用“文本编辑”,记得保存时把格式改成“所有文件”,文件名后缀是.py,比如“qrcode_generator.py”),然后复制下面这段代码:
import qrcode # 导入二维码生成库
img = qrcode.make("https://你的网址或文字") # 生成二维码,内容填你想放的文字/网址
img.save("my_first_qrcode.png") # 保存成图片,文件名可以自己改
写完后,在代码文件所在的文件夹里按住Shift+右键,选择“在此处打开命令窗口”(Windows)或“新建终端”(Mac),输入python qrcode_generator.py
,回车后如果没报错,文件夹里就会多出一个“my_first_qrcode.png”——打开看看,是不是一个能扫出来的二维码?
这里你可能会问:“这代码也太简单了,背后原理是什么?”其实qrcode库已经帮我们做了所有复杂工作:qrcode.make()
会自动把文字/网址转换成二维码的“点阵”,save()
则把点阵保存成图片。就像你用相机拍照,不用知道镜头怎么对焦,按快门就行——这个库就是帮你“按快门”的工具。
进阶版:自定义颜色、加logo和调整容错率
基础版虽然能用,但样式太普通。咱们来升级一下,让二维码变成“专属款”。比如把背景色改成浅蓝色、前景色改成深蓝色,中间加个自己的头像logo。我把代码拆成几部分,每部分都标了注释,你跟着改就行:
第一步:修改二维码颜色
在基础版代码的基础上,把qrcode.make()
换成更灵活的写法:
import qrcode
from PIL import Image # 导入图片处理库,用来处理logo
创建二维码对象,设置基本参数
qr = qrcode.QRCode(
version=1, # 二维码大小,1-40,数字越大二维码越大
error_correction=qrcode.constants.ERROR_CORRECT_H, # 容错率,H是最高(30%遮挡还能扫)
box_size=10, # 每个小方块的像素大小,数字越大图片越清晰
border=4, # 二维码边缘的空白宽度,默认4
)
添加内容
qr.add_data("https://你的网址或文字")
qr.make(fit=True) # 自动调整大小以适应内容
设置颜色:前景色(二维码方块)和背景色
img = qr.make_image(fill_color="#1E90FF", back_color="#E0F7FA").convert('RGB')
fill_color和back_color可以填颜色名(比如"blue")或十六进制色值(比如"#1E90FF"是浅蓝色)
保存图片
img.save("colored_qrcode.png")
这里有个关键参数:error_correction
(容错率)。它决定了二维码被遮挡多少还能扫出来,分L(7%)、M(15%)、Q(25%)、H(30%)四个等级。咱们加logo时需要用H级,因为logo会遮挡中间部分——就像你平时扫的微信支付码,中间有微信logo,就是靠高容错率实现的。
第二步:给二维码加logo
现在给二维码中间加个logo(比如你的头像)。你需要准备一张logo图片( 用PNG格式,背景透明的更好看),放在和代码文件同一个文件夹里,然后在上面代码的基础上,添加处理logo的部分:
# 前面的代码不变,在img.save()前添加以下内容:
打开logo图片
logo = Image.open("你的logo文件名.png") # 比如"my_logo.png"
计算logo的大小:二维码的1/4左右,太大遮挡太多,太小看不清
img_width, img_height = img.size
logo_width = int(img_width / 4)
logo_height = int(img_height / 4)
logo = logo.resize((logo_width, logo_height), Image.LANCZOS) # 调整logo大小,保持清晰度
把logo放到二维码中间
logo_position = (
(img_width
logo_width) // 2, # 水平居中
(img_height
logo_height) // 2 # 垂直居中
)
img.paste(logo, logo_position) # 粘贴logo
保存最终图片
img.save("qrcode_with_logo.png")
运行代码后,你会得到一个带logo的彩色二维码。这里有个小技巧:logo图片最好是正方形,不然可能会变形;如果logo背景不是透明的,可以用在线工具(比如remove.bg)先抠图,效果会更好。我之前给一个奶茶店做二维码时,他们用了圆形logo,结果贴上去边缘有白边,后来抠图后瞬间好看多了——细节决定成败嘛。
完整工具版:做成“一键生成”的小工具
现在代码已经能生成自定义二维码了,但每次改内容都要打开代码文件修改,不够方便。咱们再优化一步,让它变成“输入内容就能生成”的小工具——添加用户输入功能,运行代码后直接在命令行输入想生成的内容,自动保存图片。
完整代码如下(我加了详细注释,你可以直接用):
import qrcode
from PIL import Image
def generate_qrcode():
# 获取用户输入
content = input("请输入要生成二维码的内容(文字/网址):")
filename = input("请输入保存的文件名(不用加.png):") + ".png"
# 创建二维码对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=4,
)
qr.add_data(content)
qr.make(fit=True)
# 设置颜色(这里用了默认蓝白,你可以改成自己喜欢的颜色)
img = qr.make_image(fill_color="#1E90FF", back_color="#FFFFFF").convert('RGB')
# 询问是否添加logo
add_logo = input("是否添加logo?(输入y添加,其他键跳过):")
if add_logo.lower() == 'y':
try:
logo_path = input("请输入logo文件名(需和代码同文件夹):")
logo = Image.open(logo_path)
# 调整logo大小
img_width, img_height = img.size
logo_width = int(img_width / 4)
logo_height = int(img_height / 4)
logo = logo.resize((logo_width, logo_height), Image.LANCZOS)
# 粘贴logo到中间
logo_position = ((img_width
logo_width) // 2, (img_height
logo_height) // 2)
img.paste(logo, logo_position)
print("logo添加成功!")
except:
print("logo文件没找到或格式错误,已生成不带logo的二维码")
# 保存图片
img.save(filename)
print(f"二维码已保存为:{filename}")
运行函数
generate_qrcode()
现在你运行代码,会看到命令行提示你输入内容、文件名、是否加logo,一步步按提示操作,就能生成个性化二维码了。我把这个工具给我表妹用过,她是做手工饰品的,用这个生成带自己店铺logo的二维码贴在包装上,顾客都说“比网上工具做的有特色”。
你按照这个代码写完后,可以试试生成带自己社交媒体账号的二维码,或者给朋友的生日祝福生成“文字二维码”——扫出来是你写的祝福,比发普通图片有意思多了。如果遇到问题,比如“logo贴上去扫不出来”,可以检查一下容错率是不是设成了H,或者logo是不是太大了(别超过二维码的1/3)。
最后想说:写代码真的不是“程序员专属”,像这种小工具,只要选对库、跟着步骤做,零基础也能搞定。你要是按这些方法做了,欢迎在评论区分享你的二维码效果,或者告诉我你想给二维码加什么新功能——比如生成动态二维码?下次咱们可以聊聊怎么实现!
qrcode库本身确实搞不定渐变色背景或者动态效果,它更像个“基础款画笔”,能画黑白二维码,但要画“带渐变的油画”就得搭配“调色盘”——也就是Pillow库。其实渐变色背景没你想的那么复杂,我之前帮朋友做过一个从浅粉到深紫的渐变二维码,步骤超简单:先打开Pillow,用Image.new()创建一张和二维码一样大的空白图,然后用ImageDraw.Draw()的linear_gradient()函数画渐变(你可以指定起始色和结束色,比如(“#FFD1DC”, “#9370DB”)就是粉到紫),这张渐变图就是“新背景”。接着生成二维码的时候,记得把back_color设成透明(fill_color正常设,back_color=”transparent”),最后用Image.paste()把透明二维码贴到渐变背景上,保存出来就是带渐变色的效果了。你第一次试可能会发现渐变边缘有点生硬,调大二维码的border参数(比如设成6),让边缘留白多一点,渐变过渡会更自然。
动态效果(比如GIF二维码)稍微麻烦点,但也能搞定。原理其实和做GIF表情包一样:先生成几张长得差不多但有点小变化的二维码(比如第一张logo在中间,第二张logo稍微偏左,第三张偏右,或者每张颜色微调),然后用Pillow的Image.save()函数把这些图片“串”起来。我之前试过做一个“logo旋转”的GIF二维码,一开始没控制好每张图的显示时间,设了duration=100(也就是每张图显示0.1秒),结果动得飞快像闪屏,后来改成duration=300(0.3秒/张),加上loop=0让它循环播放,效果才自然。不过要注意,GIF二维码生成后文件会比静态图大不少,扫的时候可能需要多等半秒加载,所以如果不是特别需要动态效果,静态渐变其实更实用。
安装Python时忘记勾选“Add Python to PATH”怎么办?
如果安装时没勾选“Add Python to PATH”,可以手动添加环境变量。Windows用户按Win+R输入“sysdm.cpl”打开系统属性,切换到“高级”选项卡,点击“环境变量”,在“系统变量”中找到“Path”,点击“编辑”,添加Python的安装路径(通常是“C:Users你的用户名AppDataLocalProgramsPythonPythonXX”)和Scripts路径(在Python安装目录下的Scripts文件夹),保存后重启命令提示符即可。如果觉得麻烦,也可以卸载Python后重新安装,记得勾选该选项。
运行代码时提示“ModuleNotFoundError: No module named ‘qrcode’”怎么解决?
这个错误说明qrcode库没有安装成功。打开命令提示符,输入“pip install qrcode”重新安装,确保网络正常。如果安装时提示“pip不是内部或外部命令”,检查Python环境变量是否配置正确(参考上一个问题),或直接用“python -m pip install qrcode”命令安装(适用于PATH未配置的情况)。安装完成后,再次运行代码即可。
生成的二维码扫描后内容不对,可能是什么原因?
可能有两个常见原因:一是代码中“qr.add_data()”括号里的内容填写错误,比如网址多了空格或拼写错误, 仔细检查内容是否和预期一致;二是二维码版本设置过小(version参数),当内容过长时,version=1可能无法容纳全部信息,可删除version参数让代码自动适配(即qr = qrcode.QRCode()不指定version,保留fit=True),或手动调大version值(1-40之间,数字越大容量越大)。
二维码保存的图片清晰度不够,怎么调整?
可以通过修改“box_size”参数提高清晰度。box_size控制二维码每个小方块的像素大小,默认值是10,将其调大(如20),生成的图片会更清晰(但文件体积也会增大)。例如代码中改为“box_size=20”,保存的图片分辨率会翻倍。 保存时 使用.png格式(比.jpg更适合二维码这类矢量图形),避免多次压缩导致模糊。
想给二维码添加渐变色背景或动态效果,用qrcode库可以实现吗?
qrcode库本身不支持渐变色背景或动态效果,但可以结合Pillow库进一步处理。比如渐变色背景:先用Pillow创建一张渐变色图片作为底图,再将生成的二维码(设置背景色为透明)粘贴到底图上;动态效果(如GIF二维码):生成多张不同样式的二维码,用Pillow的ImageSequence模块合成GIF。不过这些操作需要一定的图片处理基础,零基础用户 先掌握基础自定义功能(改颜色、加logo),再逐步尝试高级效果。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com