32 lines
639 B
Go
32 lines
639 B
Go
package vision
|
|
|
|
import (
|
|
"github.com/skip2/go-qrcode"
|
|
"github.com/fogleman/gg"
|
|
)
|
|
|
|
// GenerateQRCode 生成一个包含二维码的画布
|
|
func GenerateQRCode(content string, size int) (*Canvas, error) {
|
|
q, err := qrcode.New(content, qrcode.Medium)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
img := q.Image(size)
|
|
return &Canvas{
|
|
dc: gg.NewContextForImage(img),
|
|
}, nil
|
|
}
|
|
|
|
// PutQRCode 在当前画布指定位置绘制二维码
|
|
func (c *Canvas) PutQRCode(content string, x, y, size int) error {
|
|
q, err := qrcode.New(content, qrcode.Medium)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
img := q.Image(size)
|
|
c.dc.DrawImage(img, x, y)
|
|
return nil
|
|
}
|