一、二维码生成
方法1:使用 go-qrcode (此种方法生成的二维码边框留白较多)
获取go-qrcode库:
go get skip2/go-qrcode
生成二维码代码:
package main
import "github.com/skip2/go-qrcode"
func main() {
qrcode.WriteFile("https://www.jianshu.com/p/cc1ffa5a3f4d", qrcode.Medium, 256, "./golang_qrcode.png")
}
方法2:使用 barcode (推荐)
获取barcode库:
go get github.com/boombuler/barcode
生成二维码代码:
package main
import (
"image/png"
"os"
"github.com/boombuler/barcode"
"github.com/boombuler/barcode/qr"
)
func main() {
qrCode, _ := qr.Encode("https://www.jianshu.com/p/cc1ffa5a3f4d", qr.M, qr.Auto)
qrCode, _ = barcode.Scale(qrCode, 256, 256)
file, _ := os.Create("qr2.png")
defer file.Close()
png.Encode(file, qrCode)
}
二、二维码扫描
使用 qrcode
获取qrcode库:
go get github.com/tuotoo/qrcode
二维码扫描代码:
package main
import (
"fmt"
"os"
"github.com/tuotoo/qrcode"
)
func main() {
fi, err := os.Open("qr2.png")
if err != nil {
fmt.Println(err.Error())
return
}
defer fi.Close()
qrmatrix, err := qrcode.Decode(fi)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(qrmatrix.Content)
}
运行结果:https://www.jianshu.com/p/cc1ffa5a3f4d
欢迎关注【技术型项目经理】公众号。可获取软件行业动态、技术积累和项目管理理念文章分享。选择「考试经验」菜单「PMP」、「高项」(信息系统项目管理师)、「CISSP」、「GoLang」可获取学习资料。
有疑问加站长微信联系(非本文作者)