31 lines
538 B
Go
31 lines
538 B
Go
package common
|
|
|
|
import (
|
|
"image"
|
|
_ "image/jpeg"
|
|
_ "image/png"
|
|
"io"
|
|
|
|
"github.com/makiuchi-d/gozxing"
|
|
"github.com/makiuchi-d/gozxing/qrcode"
|
|
)
|
|
|
|
func DecodeQRCode(file io.Reader) (content string, err error) {
|
|
img, _, err := image.Decode(file)
|
|
if err != nil {
|
|
return
|
|
}
|
|
// prepare BinaryBitmap
|
|
bmp, err := gozxing.NewBinaryBitmapFromImage(img)
|
|
if err != nil {
|
|
return
|
|
}
|
|
// decode image
|
|
qrReader := qrcode.NewQRCodeReader()
|
|
result, err := qrReader.Decode(bmp, nil)
|
|
if err != nil {
|
|
return
|
|
}
|
|
return result.String(), nil
|
|
}
|