前言
本章节将实现如下功能:
- 生成二维码
- 合并海报(背景图+二维码)
实现
生成二维码
go get -u github.com/boombuler/barcode
工具包
这里主要聚焦 func (q *QrCode) Encode 方法,做了如下事情: * 获取二维码生成路径 * 创建二维码 * 缩放二维码到指定大小 * 新建存放二维码图片的文件 * 将图像(二维码)以 JPEG 4:2:0 基线格式写入文件 另外在 jpeg.Encode(f, code, nil) 中,第三个参数可设置其图像质量,默认值为 75 ``` // DefaultQuality is the default quality encoding parameter. const DefaultQuality = 75// Options are the encoding parameters.
// Quality ranges from 1 to 100 inclusive, higher is better.
type Options struct {
Quality int
}
### 路由方法
1、第一步
在 routers/api/v1/article.go 新增 GenerateArticlePoster 方法用于接口开发
2、第二步
在 routers/router.go 的 apiv1 中新增 apiv1.POST("/articles/poster/generate", v1.GenerateArticlePoster) 路由
3、第三步
修改 GenerateArticlePoster 方法,编写对应的生成逻辑,如下:
### 验证
通过post访问:`http://127.0.0.1:8000/api/v1/articles/poster/generate`
返回值:
{
"code": 200,
"data": null,
"msg": "ok"
}
通过检查两个点确定功能是否正常,如下:
1、访问结果是否 200
2、本地目录是否成功生成二维码图片
