package qrcode // 生成登录二维码图片, 方便在网页上显示 import ( "bytes" "encoding/base64" "image/jpeg" "image/png" "io/ioutil" "net/http" "github.com/boombuler/barcode" "github.com/boombuler/barcode/qr" ) func GetJPGBase64(content string, edges ...int) string { edgeLen := 300 if len(edges) > 0 && edges[0] > 100 && edges[0] < 2000 { edgeLen = edges[0] } img, _ := qr.Encode(content, qr.L, qr.Unicode) img, _ = barcode.Scale(img, edgeLen, edgeLen) emptyBuff := bytes.NewBuffer(nil) // 开辟一个新的空buff缓冲区 jpeg.Encode(emptyBuff, img, nil) dist := make([]byte, 50000) // 开辟存储空间 base64.StdEncoding.Encode(dist, emptyBuff.Bytes()) // buff转成base64 return "data:image/png;base64," + string(dist) // 输出图片base64(type = []byte) } func GetPNGBase64(content string, edges ...int) string { edgeLen := 300 if len(edges) > 0 && edges[0] > 100 && edges[0] < 2000 { edgeLen = edges[0] } img, _ := qr.Encode(content, qr.L, qr.Unicode) img, _ = barcode.Scale(img, edgeLen, edgeLen) emptyBuff := bytes.NewBuffer(nil) // 开辟一个新的空buff缓冲区 png.Encode(emptyBuff, img) dist := make([]byte, 50000) // 开辟存储空间 base64.StdEncoding.Encode(dist, emptyBuff.Bytes()) // buff转成base64 return string(dist) // 输出图片base64(type = []byte) } func GetFileBase64(content string) string { res, err := http.Get(content) if err != nil { return "" } defer res.Body.Close() data, _ := ioutil.ReadAll(res.Body) imageBase64 := base64.StdEncoding.EncodeToString(data) return imageBase64 }