文章目录
一、生成二维码
1.1 skip2/go-qrcode生成二维码
1.2 boombuler/barcode生成二维码
二、生成条形码
2.1 boombuler/barcode生成条形码
三、识别二维码
3.1 tuotoo/qrcode识别二维码
一、生成二维码

1.1 skip2/go-qrcode生成二维码

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

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

代码实现

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)
     }

}

效果

1.2 boombuler/barcode生成二维码

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

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

代码实现

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)
}

二、生成条形码
github官方地址:https://github.com/boombuler/barcode

2.1 boombuler/barcode生成条形码

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

代码实现

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.1 tuotoo/qrcode识别二维码

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

代码实现

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)
 }

效果
识别qr1.png得到https://blog.csdn.net/weixin_,失败
识别qr2.png得到https://blog.csdn.net/weixin_36162966,成功

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

原文链接:https://blog.csdn.net/weixin_36162966/article/details/94013189

文档更新时间: 2020-02-15 11:03   作者:月影鹏鹏