|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package zhios_tool_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
- }
|