游侠网云服务,免实名免备案服务器 游侠云域名,免实名免备案域名

统一声明:

1.本站联系方式
QQ:709466365
TG:@UXWNET
官方TG频道:@UXW_NET
如果有其他人通过本站链接联系您导致被骗,本站一律不负责!

2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET
3.免实名域名注册购买- 游侠云域名
4.免实名国外服务器购买- 游侠网云服务
Python二维码生成图片源码|零基础教程|完整实现步骤|附示例代码

准备工作:从环境搭建到核心库选择

在开始写代码前,咱们得先把“工具”准备好。就像做饭需要锅碗瓢盆,写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 qrcodepip 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),再逐步尝试高级效果。