0

0

怎样用Golang生成二维码 使用go-qrcode库实践图像生成

P粉602998670

P粉602998670

发布时间:2025-07-05 12:14:01

|

254人浏览过

|

来源于php中文网

原创

使用 go-qrcode 生成二维码需先安装库,再调用方法生成 png 文件或返回 http 流。1. 安装命令为 go get github.com/skip2/go-qrcode;2. 生成文件示例代码为 qrcode.writefile("https://example.com", qrcode.medium, 256, "qrcode.png");3. 容错等级包括 l、m、q、h,推荐使用 medium;4. 图像尺寸建议 200 像素以上以确保可识别性;5. 可结合其他图像库自定义样式如加颜色或 logo;6. web 中可通过 http.responsewriter 返回二维码流实现动态生成。

怎样用Golang生成二维码 使用go-qrcode库实践图像生成

生成二维码在现代开发中很常见,比如用作链接、支付码或者信息传递。Golang 有个非常好用的第三方库叫 go-qrcode,可以快速实现二维码图像的生成。下面我们就来看看怎么用它来生成二维码。

怎样用Golang生成二维码 使用go-qrcode库实践图像生成

安装 go-qrcode

首先你需要确保你的 Go 环境已经配置好。然后通过以下命令安装 go-qrcode

怎样用Golang生成二维码 使用go-qrcode库实践图像生成
go get github.com/skip2/go-qrcode

这个命令会自动下载并安装该库到你的项目中。

立即学习go语言免费学习笔记(深入)”;

最简单的使用方式:生成 PNG 文件

如果你只是想把一段文本或链接转成二维码图片,可以用如下代码直接生成 PNG 文件:

怎样用Golang生成二维码 使用go-qrcode库实践图像生成
package main

import (
    "log"
    "github.com/skip2/go-qrcode"
)

func main() {
    // 第一个参数是内容,第二个是大小(L, M, Q, H)
    err := qrcode.WriteFile("https://example.com", qrcode.Medium, 256, "qrcode.png")
    if err != nil {
        log.Fatal(err)
    }
}

运行之后,当前目录下就会生成一个名为 qrcode.png 的二维码图片。你可以用微信支付宝扫一扫试试看。

这里要注意几个点:

  • 第二个参数是容错等级,有四个选项:L(7%)、M(15%)、Q(25%)、H(30%),默认推荐用 qrcode.Medium
  • 第三个参数是图像尺寸,单位是像素,建议至少设为 200 以上,否则可能扫不出来。

自定义样式?加颜色或Logo?

虽然 go-qrcode 默认只支持黑白 PNG 图片,但你可以结合其他图像处理库(如 image/png, image/color)来修改颜色或者叠加 Logo。

PHP QR Code
PHP QR Code

PHP QR Code 是一个开源(LGPL)的库,用于生成 QR Code,即二维码。基于 libqrencode C 库,提供了创建 QR Code 条形码图像的 API(PNG、JPEG 依赖于 GD2)。完全使用 PHP 实现。

下载

举个例子,假设你想生成一个红色背景的二维码,可以这样做:

qrCode, err := qrcode.Encode("https://example.com", qrcode.Medium, 256)
if err != nil {
    log.Fatal(err)
}

// 打开文件并保存,这部分略去,你可以用 os 包写入文件

如果你想加入 Logo 或者彩色样式,可能需要借助像 github.com/golang/freetypegithub.com/disintegration/imaging 这类图像处理库进行二次加工。

不过需要注意的是,这些操作就不属于 go-qrcode 的原生功能了,需要自己额外处理。

Web 中返回二维码流

有时候你不想生成文件,而是希望在 HTTP 接口中直接返回二维码图像流。这时候你可以这样写:

func generateQR(w http.ResponseWriter, r *http.Request) {
    content := "https://example.com"
    qrCode, _ := qrcode.Encode(content, qrcode.Medium, 256)
    w.Header().Set("Content-Type", "image/png")
    w.Write(qrCode)
}

然后注册路由,访问时就可以直接看到二维码图片。

这种方式适合做动态生成二维码的服务接口,比如根据用户输入的内容实时生成。


基本上就这些。用 go-qrcode 做二维码生成不算复杂,但有些细节容易忽略,比如尺寸太小导致无法识别、容错等级影响可读性等。只要注意这些点,就能轻松搞定大部分需求。

相关专题

更多
golang如何定义变量
golang如何定义变量

golang定义变量的方法:1、声明变量并赋予初始值“var age int =值”;2、声明变量但不赋初始值“var age int”;3、使用短变量声明“age :=值”等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2024.02.23

golang有哪些数据转换方法
golang有哪些数据转换方法

golang数据转换方法:1、类型转换操作符;2、类型断言;3、字符串和数字之间的转换;4、JSON序列化和反序列化;5、使用标准库进行数据转换;6、使用第三方库进行数据转换;7、自定义数据转换函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

228

2024.02.23

golang常用库有哪些
golang常用库有哪些

golang常用库有:1、标准库;2、字符串处理库;3、网络库;4、加密库;5、压缩库;6、xml和json解析库;7、日期和时间库;8、数据库操作库;9、文件操作库;10、图像处理库。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

340

2024.02.23

golang和python的区别是什么
golang和python的区别是什么

golang和python的区别是:1、golang是一种编译型语言,而python是一种解释型语言;2、golang天生支持并发编程,而python对并发与并行的支持相对较弱等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

209

2024.03.05

golang是免费的吗
golang是免费的吗

golang是免费的。golang是google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的开源编程语言,采用bsd开源协议。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

393

2024.05.21

golang结构体相关大全
golang结构体相关大全

本专题整合了golang结构体相关大全,想了解更多内容,请阅读专题下面的文章。

197

2025.06.09

golang相关判断方法
golang相关判断方法

本专题整合了golang相关判断方法,想了解更详细的相关内容,请阅读下面的文章。

191

2025.06.10

golang数组使用方法
golang数组使用方法

本专题整合了golang数组用法,想了解更多的相关内容,请阅读专题下面的文章。

253

2025.06.17

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 4.7万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.8万人学习

Go 教程
Go 教程

共32课时 | 4.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号