go 二维码生成与解析 - Go语言中文社区

go 二维码生成与解析


package main

import (
	"fmt"
	"github.com/makiuchi-d/gozxing"
	gq "github.com/makiuchi-d/gozxing/qrcode"
	"github.com/outakujo/utils"
	"github.com/skip2/go-qrcode"
	"image"
	"os"
)

func main() {
	qr := &MQr{}
	s, e := qr.Parse("qrcode.png")
	fmt.Println(s, e)
	qr.Gen("你好,world!", "qrcode.png")
}

type MQr struct {
}

func (*MQr) Gen(data, file string) {
	code, e := qrcode.New(data, qrcode.Medium)
	utils.PanicError(e)
	code.DisableBorder = true
	utils.PanicError(e)
	e = code.WriteFile(256, file)
	utils.PanicError(e)
}

func (*MQr) Parse(file string) (string, error) {
	fi, _ := os.Open(file)
	img, _, _ := image.Decode(fi)
	bmp, _ := gozxing.NewBinaryBitmapFromImage(img)
	qrReader := gq.NewQRCodeReader()
	result, e := qrReader.Decode(bmp, nil)
        if e != nil {
	    return "", e
	}
	return result.String(), e
}

 所生成的二维码

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/takujo/article/details/104867666
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-06 10:44:01
  • 阅读 ( 1159 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢