Golang生成、识别二维码与条形码

一、生成二维码

1.1 skip2/go-qrcode生成二维码

github官方地址:https://github.com/skip2/go-qrcode

  1. 安装 go get -u -v github.com/skip2/go-qrcode

  2. 代码实现

    package main
    
    import (
     	"fmt"
     	"github.com/skip2/go-qrcode"
     )
     
    func main() {
     	err := qrcode.WriteFile("https://blog.csdn.net/weixin_36162966", qrcode.Medium, 256, "qr1.png")
     	if err!=nil{
     		fmt.Println("生成二维码错误 error:",err)
     	}
     
     }
    
  3. 效果
    在这里插入图片描述

1.2 boombuler/barcode生成二维码

github官方地址:https://github.com/boombuler/barcode

  1. 安装 go get -u -v github.com/boombuler/barcode

  2. 代码实现

    package main
    
    import (
     "image/png"
     "os"
    
     "github.com/boombuler/barcode"
     "github.com/boombuler/barcode/qr"
    )
    
    func main() {
     	// 创建barcode
     	qrCode, _ := qr.Encode("https://blog.csdn.net/weixin_36162966", qr.M, qr.Auto)
     
     	// 设置图片像素大小
     	qrCode, _ = barcode.Scale(qrCode, 256, 256)
     
     	// 创建一个要输出数据的文件
     	file, _ := os.Create("qr2.png")
     	defer file.Close()
     
     	// 将二维码编码为png图片
     	png.Encode(file, qrCode)
    }
    
  3. 效果
    在这里插入图片描述

二、生成条形码

github官方地址:https://github.com/boombuler/barcode

2.1 boombuler/barcode生成条形码

  1. 安装 go get -u -v github.com/boombuler/barcode

  2. 代码实现

    package main
    
    import (
    	"github.com/boombuler/barcode"
    	"github.com/boombuler/barcode/code128"
    	"image/png"
    	"os"
    )
    
    func main() {
    	// 创建一个code128编码的 BarcodeIntCS
    	cs, _ := code128.Encode("123456")
    	// 创建一个要输出数据的文件
    	file, _ := os.Create("qr3.png")
    	defer file.Close()
    
    	// 设置图片像素大小
    	qrCode, _ := barcode.Scale(cs, 350, 70)
    	// 将code128的条形码编码为png图片
    	png.Encode(file,qrCode)
    } 
    
  3. 效果
    在这里插入图片描述

三、识别二维码

3.1 tuotoo/qrcode识别二维码

  1. 安装 go get -u -v github.com/tuotoo/qrcode

  2. 代码实现

    package main
    
    import (
     	"fmt"
     	"github.com/tuotoo/qrcode"
     	"os"
    )
     
    func main() {
     	fi, err := os.Open("qr1.png")
     	if err != nil {
     		fmt.Println(err)
     		return
     	}
     	defer fi.Close()
     	qrmatrix, err := qrcode.Decode(fi)
     	if err != nil {
     		fmt.Println(err)
     		return
     	}
     	fmt.Println(qrmatrix.Content)
     }
    
  3. 效果
    识别qr1.png得到https://blog.csdn.net/weixin_失败
    识别qr2.png得到https://blog.csdn.net/weixin_36162966成功

  4. 注意
    两种库生成的二维码都是可以微信扫码打开成功的,说明tuotoo/qrcode库还是有一定的bug,请大家谨慎使用。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值