33 lines
510 B
Go
33 lines
510 B
Go
package qrcode
|
|
|
|
import (
|
|
"bytes"
|
|
"image/png"
|
|
|
|
"github.com/boombuler/barcode"
|
|
"github.com/boombuler/barcode/qr"
|
|
)
|
|
|
|
func GeneratePNG(content string, size int) ([]byte, error) {
|
|
if size <= 0 {
|
|
size = 256
|
|
}
|
|
|
|
qrCode, err := qr.Encode(content, qr.M, qr.Auto)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
qrCode, err = barcode.Scale(qrCode, size, size)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var buf bytes.Buffer
|
|
if err := png.Encode(&buf, qrCode); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return buf.Bytes(), nil
|
|
}
|