导入barcode包
"github.com/boombuler/barcode" "github.com/boombuler/barcode/qr"
使用barcode库生成二维码
func main() { //定义二维码内容 qrcode, _ := qr.Encode("https://www.cnblogs.com/hongyeci", qr.M, qr.Auto) //设置二维码的宽高 qrcode, _ = barcode.Scale(qrcode, 256, 256) //创建qrcode.png文件 file, _ := os.Create("qrcode2.png") //关闭文件流--defer-延迟关闭资源 defer file.Close() //将二维码写入文件中 if err := png.Encode(file, qrcode); err != nil { fmt.Println("生成二维码失败") } else { fmt.Println("生成二维码成功") } }
这里复习一下defer关键字的主要用法:延迟执行,主要是关闭流时用到,在return之前执行,当有多个defer关键字时采用先进后出的方式执行;
使用qrcode库扫描二维码
导入qrcode包
"github.com/tuotoo/qrcode"
扫描二维码
func main() { //打开二维码文件qrcode.png file,err:=os.Open("qrcode.png") if err!=nil { fmt.Println("error:",err.Error()) return } //关闭文件流 defer file.Close() //扫描二维码 qrmatrix, err := qrcode.Decode(file) if err != nil { fmt.Println(err.Error()) return } fmt.Println(qrmatrix.Content) }
                    
                
                
            
        
浙公网安备 33010602011771号