添加并引用依赖
go get github.com/boombuler/barcode
import (
"github.com/skip2/go-qrcode"
)
1、生成字节形式二维码
//GetQRCodeIO 返回图片字节 content-二维码内容 level-容错级别(越高越好),Low,Medium,High,Highest size-像素单位
func GetQRCodeIO(content string, level qrcode.RecoveryLevel, size int) string {
var png []byte
//固定方法
png, err := qrcode.Encode(content, level, size)
if err != nil {
return ""
}
//文件流需要使用base64编码后才可使用
res := base64.StdEncoding.EncodeToString(png)
fmt.Println(res)
return res
}
会生成下图字节数据

2、生成文件二维码图片
//GetQRCodeFile content-二维码内容 level-容错级别,Low,Medium,High,Highest size-像素单位 outPath-输出路径
func GetQRCodeFile(content, outPath string, level qrcode.RecoveryLevel, size int) interface{
} {
//固定方法
err := qrcode.WriteFile(content, level, size, outPath)
if err != nil {
return err.Error()
}
return nil
}
会生成下图文件样式

3、生成可编译颜色二维码图片
//GetQRCodeCustom content-二维码内容 level-容错级别,Low,Medium,High,Highest size-像素单位 outPath-输出路径 bColor-前景颜色 gColor-背景颜色
func GetQRCodeCustom(content, outPath string, level qrcode.RecoveryLevel, size int, bColor, gColor color.Color) interface{
} {
//固定方法
err := qrcode.WriteColorFile(content, level, size, bColor, gColor, outPath)
if err != nil {
return err.Error()
}
return nil
}
会生成下图文件样式

4、生成带logo的二维码
//CreateQrCodeWithLogo 带logo的二维码图片生成 content-二维码内容 level-容错级别,Low,Medium,High,Highest size-像素单位 outPath-输出路径 logoPath-logo文件路径
func CreateQrCodeWithLogo(content, logoPath, outPath string, level qrcode.RecoveryLevel, size int) interface{
} {
code, err := qrcode.New(content, level)
if err != nil {
return err.Error()
}
//设置文件大小并创建画板
qrcodeImg := code.Image(size)
outImg := image.NewRGBA(qrcodeImg.Bounds())
//读取logo文件
logoFile, err := os.Open(logoPath)
if err != nil {
panic(err)
}
logoImg, _, err := image.Decode(logoFile)
logoImg = resize.Resize(uint(size/6), uint(size/6), logoImg, resize.Lanczos3)
//logo和二维码拼接
draw.Draw(outImg, outImg.Bounds(), qrcodeImg, image.Pt(0, 0), draw.Over)
offset := image.Pt((outImg.Bounds().Max.X-logoImg.Bounds().Max.X)/2, (outImg.Bounds().Max.Y-logoImg.Bounds().Max.Y)/2)
draw.Draw(outImg, outImg.Bounds().Add(offset), logoImg, image.Pt(0, 0), draw.Over)
f, err := os.Create(outPath

该博客主要介绍了使用Golang开发语言进行二维码生成的相关内容。包括添加并引用依赖后,实现生成字节形式二维码、文件二维码图片、可编译颜色二维码图片、带logo的二维码,还提及生成logo圆形并收缩边框,最后给出了完整代码。
979

被折叠的 条评论
为什么被折叠?



