Go语言可用skip2/go-qrcode库命令行生成二维码:支持中文、纠错等级、自定义尺寸/颜色/透明背景,WriteFile保存PNG/JPEG,WriteColorFile支持前景色与透明底,适合批量生成。
用 Go 语言生成并保存二维码图片,核心是借助成熟的第三方库(如 qrcode),几行代码就能完成——无需图形界面,纯命令行即可输出 PNG 或 JPEG 文件。
安装依赖库
推荐使用轻量、稳定、支持中文的 github.com/skip2/go-qrcode:
- 运行命令安装:go get github.com/skip2/go-qrcode
- 该库基于 QR Code ISO/IEC 18004 标准,支持纠错等级(L/M/Q/H)、自定义尺寸、颜色及文件导出
基础生成与保存示例
以下代码生成内容为 "Hello, 世界" 的二维码,保存为 qrcode.png:
package main
import (
"log"
"github.com/skip2/go-qrcode"
)
func main() {
err := qrcode.WriteFile("Hello, 世界", qrcode.Medium, 256, "qrcode.png")
if err != nil {
log.Fatal(err)
}
}
-
qrcode.Medium表示纠错等级(中等,约15%容错);可选Low/High/Quartile -
256是输出图片宽高(像素),正方形尺寸,最小建议 256 起以保证清晰度 -
"qrcode.png"支持.png和.jpg后缀,自动识别格式
进阶:自定义颜色与透明背景
若需修改前景色(二维码模块)或背景色,可用 qrcode.WriteColorFile:
import "image/color"
err := qrcode.WriteColorFile(
"https://golang.org",
qrcode.Medium,
300,
&color.RGBA{0, 128, 255, 255}, // 前景色:蓝色
&color.RGBA{255, 255, 255, 0}, // 背景色:完全透明(alpha=0)
"custom_qr.png",
)
- 第5个参数为背景色,设为
&color.RGBA{255,255,255,0}可得透明底 PNG(注意仅 PNG 支持透明) - 确保目标路径有写入权限,否则
WriteFile会返回permission denied
批量生成与文件名控制
实际应用中常需按内容生成多个二维码,例如从 CSV 或命令行参数读取:
- 用
flag包接收输入:g
o run main.go -text "user-123" -output "user123.png" - 循环生成时注意避免文件名冲突,建议对原始文本做简单哈希或编码(如
url.PathEscape) - 大尺寸(如 1024×1024)时内存占用略增,但普通用途无压力

o run main.go -text "user-123" -output "user123.png"






