免费生成二维码的 5 个方案:离线库、浏览器端渲染和在线 API 怎么选

发布时间:2026/8/28 9:29:17
免费生成二维码的 5 个方案:离线库、浏览器端渲染和在线 API 怎么选 免费生成二维码的 5 个方案离线库、浏览器端渲染和在线 API 怎么选【免费下载链接】free-for-devA list of SaaS, PaaS and IaaS offerings that have free tiers of interest to devops and infradev项目地址: https://gitcode.com/GitHub_Trending/fr/free-for-dev上次给后台加扫码入口光选型就翻了 40 分钟。其实免费生成二维码的路子就三条本地库离线出图、浏览器端实时渲染、在线 API 免部署。本文对比 5 个能直接复制运行的方案每个都带最小代码和一个真实的坑印刷规格、动态码更新不在范围内。快速定位先按部署形态排除qrcode (Python) —— 装进 pip 就离线出图脚本、CI 和断网内网环境的首选qrcode.js —— 浏览器 3 行出图内容不出前端适合纯静态页qrcode (Node) —— 服务端渲染成 Buffer 或落盘文件导出、SSR 场景用go-qrcode —— 零第三方依赖编译进二进制Go 服务里的内嵌组件qrserver API —— 一条 URL 换一张图demo 和临时验证用敏感内容别走它五个免费二维码方案逐个过最小代码和各自的坑下面每个方案都给最小可运行代码和一个真实坑按你的技术栈往下翻就行。qrcode (Python)脚本和 CI 里离线出图任务要是在脚本或流水线里批量出一批码、落文件而且机器可能没网Python qrcode 是最直接的。生成逻辑一行 make() 搞定批量就是循环加个计数器。纯本地实现内容不出机器断网内网、CI runner 直接跑PNG、SVG 一次产出不用接第二套工具做后处理纠错级别Error Correction Level从 L 到 H 可选默认 M约 15% 容错容量它只负责生成矩阵嵌 Logo、改品牌色要靠 Pillow 后处理import qrcode # box_size10每个模块 10pxH 级纠错给 Logo 留 30% 容错空间 img qrcode.make( https://example.com, error_correctionqrcode.constants.ERROR_CORRECT_H, box_size10, ) img.save(qr.png)⚠️ PNG 输出依赖 Pillow裸环境会抛ImportError: Could not import Pillowpip install pillow解决只出 SVG 则不依赖它。qrcode.js浏览器端 3 行出图// 容器先放 DOM 里const box document.getElementById(qr-box) new QRCode(box, { text: https://example.com, width: 200, height: 200, // 显示尺寸单位 px correctLevel: QRCode.CorrectLevel.H, // 留 30% 容错方便后贴 Logo });不经过服务端内容留在浏览器里纯静态页或老系统的模板页直接可用。全局脚本引入不用动构建配置是老项目里最省事的接法输出是 canvas 或 img改前景色一行代码的事老库没有官方类型定义现代打包环境接入容易翻车⚠️ 在 Vite/Webpack 里直接import qrcodejs大概率报错模块格式不标准要么用 script 标签挂全局要么换封装它的 npm 包。qrcode (Node)服务端渲染到文件后端要生成完落盘、推 CDN 或直接当响应吐出去用 npm 上同名的 qrcode——它和 Python 版是两个实现别混着查文档。三个出口toBuffer / toFile / toStream一份代码覆盖内存、文件、流三种场景全异步批量生成不卡事件循环参数名和 Python 版基本对应error_correction → errorCorrectionLevel跨语言迁移成本很低const QRCode require(qrcode); // npm i qrcode const fs require(fs); const buf await QRCode.toBuffer(https://example.com, { width: 300, margin: 2, // 边距格数别设 0 errorCorrectionLevel: M, }); fs.writeFileSync(qr.png, buf);⚠️ margin 默认是 4别为了省像素设 0扫码库靠四周静区quiet zone识别码设 0 会明显掉识别率。go-qrcode编译进 Go 服务的零依赖组件说白了二维码生成就是服务自带的能力不用拆外部进程、不依赖任何文件。go-qrcode 是这个诉求下少数能直接用的选择。零第三方依赖go build 完产物就是一个二进制Encode 直接返回 PNG 的 []byte不用引图像库API 面就一个函数代码评审和审计成本极低级别从 Low 到 High 四档尺寸任意像素不用碰矩阵级操作package main import ( os qrcode github.com/skip2/go-qrcode ) func main() { // 三参数内容、纠错级别 High容错 30%、像素边长 320 data, err : qrcode.Encode(https://example.com, qrcode.High, 320) if err ! nil { panic(err) // 内容超容量会在这返回别忽略 } os.WriteFile(qr.png, data, 0o644) }⚠️ 网上示例常写成data, _ :忽略错误真实代码务必检查 err——内容超容量时返回空数据加 error后续会写出坏文件。qrserver API不写代码的即时出图只用于 demo、一次性验证、十秒内要一张图且不装任何东西的场景。# 零部署URL 即图片落盘到 qr.png # 特殊字符必须编码%3A 是冒号%2F 是斜杠 curl -o qr.png \ https://api.qrserver.com/v1/create-qr-code/?size300x300datahttps%3A%2F%2Fexample.comURL 即图片放文档、贴 IM 里都能用零部署size 参数随时改像素不用重新编译发布能指定前后景色参数但做不到品牌模板级别可用性和隐私都押在别人身上离线不可用内容明文过第三方⚠️ data 参数【免费下载链接】free-for-devA list of SaaS, PaaS and IaaS offerings that have free tiers of interest to devops and infradev项目地址: https://gitcode.com/GitHub_Trending/fr/free-for-dev创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考