39 lines
779 B
Go
39 lines
779 B
Go
package utils
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"gitee.ltd/lxh/logger/log"
|
|
"github.com/skip2/go-qrcode"
|
|
)
|
|
|
|
type qrCode struct{}
|
|
|
|
func QRCode() qrCode {
|
|
return qrCode{}
|
|
}
|
|
|
|
// GenerateQrCodeBase64
|
|
// @description: 生成二维码
|
|
// @receiver qr
|
|
// @param content
|
|
// @param size
|
|
// @return imgStr
|
|
// @return err
|
|
func (qr qrCode) GenerateQrCodeBase64(content []byte, size int) (imgStr string, err error) {
|
|
q, err := qrcode.New(string(content), qrcode.Highest)
|
|
if err != nil {
|
|
log.Errorf("初始化二维码对象失败: %v", err.Error())
|
|
return
|
|
}
|
|
q.DisableBorder = false
|
|
|
|
png, err := q.PNG(size)
|
|
if err != nil {
|
|
log.Errorf("生成二维码失败: %v", err.Error())
|
|
return "", err
|
|
}
|
|
|
|
imgStr = "data:image/png;base64," + base64.StdEncoding.EncodeToString(png)
|
|
return
|
|
}
|