使用Go语言实现一个二维码生成器
作者:程序员爱钓鱼
二维码作为信息传递的载体,已经广泛应用在支付、营销、门票、WiFi 分享等场景中,Go 标准库虽然没有直接支持二维码,但通过第三方库我们可以非常方便地实现一个二维码生成器工具,这一篇我们就来带你一步一步完成一个二维码生成器,需要的朋友可以参考下
引言
二维码作为信息传递的载体,已经广泛应用在支付、营销、门票、WiFi 分享等场景中。Go 标准库虽然没有直接支持二维码,但通过第三方库我们可以非常方便地实现一个二维码生成器工具。
这一篇我们就来带你一步一步完成一个支持文本/URL 转二维码、可自定义大小和输出格式的命令行工具。
功能目标
- 输入字符串(如 URL、文本),生成对应二维码。
- 支持输出 PNG 格式图片。
- 可指定二维码尺寸(默认 256x256)。
- 支持命令行运行,参数简单易懂。
- 可扩展:支持 Logo 嵌入、颜色定制。
技术选型
第三方库:
- https://github.com/skip2/go-qrcode—— 简单易用的二维码生成库。
命令行解析:使用 Go 标准库 flag
。
项目结构
qrcode-gen/ ├── main.go ├── go.mod
完整代码(main.go)
package main import ( "flag" "fmt" "os" "github.com/skip2/go-qrcode" ) func main() { // 命令行参数 content := flag.String("text", "https://golang.org", "需要生成二维码的内容") output := flag.String("out", "qrcode.png", "输出文件路径") size := flag.Int("size", 256, "二维码尺寸(像素)") flag.Parse() if *content == "" { fmt.Println("❌ 内容不能为空,请使用 -text 参数指定要生成二维码的内容") os.Exit(1) } // 生成二维码 err := qrcode.WriteFile(*content, qrcode.Medium, *size, *output) if err != nil { fmt.Printf("❌ 生成二维码失败: %v\n", err) os.Exit(1) } fmt.Printf("✅ 二维码已生成: %s\n", *output) }
使用方法
- 初始化项目并安装依赖:
go mod init qrcode-gen go get github.com/skip2/go-qrcode
- 构建可执行文件:
go build -o qrcode-gen main.go
- 运行示例:
# 生成默认二维码 ./qrcode-gen -text "https://github.com" -out github.png # 指定大小 ./qrcode-gen -text "Hello, QR!" -size 512 -out hello.png
运行效果
- 输入:
https://github.com
- 输出:一张名为
github.png
的二维码,尺寸为 256x256,可以用微信/支付宝扫描。
扩展功能(进阶)
- Logo 嵌入:在二维码中间加一个小图标(例如品牌 Logo)。
- 颜色定制:支持前景色、背景色自定义。
- 批量生成:读取一个 CSV/文本文件,为每一行生成一个二维码。
- Web 服务版:提供一个 HTTP API,接收参数并返回二维码图片。
总结
通过 go-qrcode
库,我们几行代码就实现了一个二维码生成器工具:
- 支持命令行参数
- 输出 PNG 图片
- 可指定尺寸
- 可快速集成到自动化脚本或 Web 服务
到此这篇关于使用Go语言实现一个二维码生成器的文章就介绍到这了,更多相关Go二维码生成器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!