欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go語言編程二維碼生成及識別

 更新時間:2022年04月28日 18:42:46   作者:Clown95  
這篇文章主要為大家介紹了go語言編程二維碼的生成及識別示例演示,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

我們在做go web開發(fā)的時候,應該都遇到生成二維碼分享的應用場景,下面我將介紹下使用go如何生成二維碼。

安裝 go-qrcode

我們不得不慶幸go的生態(tài)已經(jīng)越來越豐富,有很多大牛已經(jīng)幫我們寫好了庫,我們不必造輪子,直接拿過來用就好。

首先,我們安裝我們用到的go-qrcode庫。

https://github.com/skip2/go-qrcode/

go get -u github.com/skip2/go-qrcode/…

生成普通二維碼

使用了這個庫,你會發(fā)現(xiàn)二維碼生成原來是如此的簡單,現(xiàn)在我們就來演示一下。

package main
import "github.com/skip2/go-qrcode"
func main() {
	qrcode.WriteFile("https://blog.csdn.net/yang731227",qrcode.Medium,256,"./qrcode.png")
}

這樣我們就可以生成了一個二維碼。

我們首先看下func WriteFile(content string, level RecoveryLevel, size int, filename string) error的參數(shù)。

  • content string 簡單明了,這個是二維碼內容
  • level RecoveryLevel 這個是二維碼容錯等級,取值有Low、Medium、High、Highest。
  • size int 不用說都知道這個是定義二維碼大小
  • filename string 二維碼的保存路徑

生成有前后背景顏色的二維碼

剛剛我們生成了一個前黑后白的二維碼,這次我們想搞點花樣,生成一個花花綠綠的二維碼,我們直接上代碼

package main
import (
	"github.com/skip2/go-qrcode"
	"image/color"
)
func main() {
	//qrcode.WriteFile("https://blog.csdn.net/yang731227",qrcode.High,200,"./qrcode.png")
	qrcode.WriteColorFile("https://blog.csdn.net/yang731227", qrcode.High, 256, color.Black, color.White, "./qrcode.png")
}

我們來看下func WriteColorFile(content string, level RecoveryLevel, size int, background, foreground color.Color, filename string) error的參數(shù),比WriteFile 多了兩個參數(shù) background, foreground color.Color 。我們可以從字面意思就知道,background 是背景顏色,foreground是前景顏色。

顏色我們可以使用 color定義 ,它為我們定義了兩個默認顏色,Black和White。如果我們想用其他顏色怎么辦呢?它為我們提供了color.RGBA() 這個方法,RGBA()有4個參數(shù) 分別是RGB的值和透明值。

例如:

package main
import (
	"github.com/skip2/go-qrcode"
	"image/color"
)
func main() {
	//qrcode.WriteFile("https://blog.csdn.net/yang731227",qrcode.High,200,"./qrcode.png")
	qrcode.WriteColorFile("https://blog.csdn.net/yang731227", qrcode.High, 256, color.Black, color.White, "./qrcode.png")
}

識別二維碼

上面我們講了怎么生成二維,現(xiàn)在我們來實習解析二維碼,當然我們還是需要借助別人寫的庫。

首先我們安裝庫

go get github.com/tuotoo/qrcode

然后我們直接上代碼

package main
import (
	"fmt"
	"os"
	"github.com/tuotoo/qrcode"
)
func main() {
	fi, err := os.Open("./qrcode.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)
}

以上就是go語言編程二維碼生成及識別的詳細內容,更多關于go語言二維碼生成識別的資料請關注腳本之家其它相關文章!

相關文章

  • gin使用自定義結構綁定表單數(shù)據(jù)的示例代碼

    gin使用自定義結構綁定表單數(shù)據(jù)的示例代碼

    這篇文章主要介紹了gin使用自定義結構綁定表單數(shù)據(jù)的示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • go語言實現(xiàn)依賴注入的示例代碼

    go語言實現(xiàn)依賴注入的示例代碼

    依賴注入和控制反轉恰恰相反,它是一種具體的編碼技巧,我們不通過 new 的方式在類內部創(chuàng)建依賴類的對象,而是將依賴的類對象在外部創(chuàng)建好之后,通過構造函數(shù)、函數(shù)參數(shù)等方式傳遞給類來使用,本文將給大家介紹go語言實現(xiàn)依賴注入,需要的朋友可以參考下
    2024-01-01
  • Go調用C++動態(tài)庫實現(xiàn)車牌識別的示例代碼

    Go調用C++動態(tài)庫實現(xiàn)車牌識別的示例代碼

    本文主要介紹了如何利用C++中Opencv、TensorRT等庫編譯出動態(tài)庫供Go調用,再寫個簡單的api對上傳的車輛圖片進行車牌識別,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 對Go語言中的context包源碼分析

    對Go語言中的context包源碼分析

    這篇文章主要對Go語言中的context包源碼進行分析,context包析是1.15,context包定義了一個Context類型過這個Context接口類型,?就可以跨api邊界/跨進程傳遞一些值,下面我們就來對context包源碼進行分析,需要的小伙伴可以參考一下
    2022-02-02
  • golang中package?is?not?in?GOROOT報錯的真正解決辦法

    golang中package?is?not?in?GOROOT報錯的真正解決辦法

    這篇文章主要給大家介紹了關于golang中package?is?not?in?GOROOT報錯的真正解決辦法,文中通過圖文介紹的非常詳細,對同樣遇到這個問題的朋友具有一定的參考學習價值,需要的朋友可以參考下
    2023-03-03
  • Golang cron 定時器和定時任務的使用場景

    Golang cron 定時器和定時任務的使用場景

    Ticker是一個周期觸發(fā)定時的計時器,它會按照一個時間間隔往channel發(fā)送系統(tǒng)當前時間,而channel的接收者可以以固定的時間間隔從channel中讀取事件,這篇文章主要介紹了Golang cron 定時器和定時任務,需要的朋友可以參考下
    2022-09-09
  • Golang使用MinIO的方案詳解

    Golang使用MinIO的方案詳解

    這篇文章主要介紹了Golang使用MinIO的過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 總結Golang四種不同的參數(shù)配置方式

    總結Golang四種不同的參數(shù)配置方式

    這篇文章主要介紹了總結Golang四種不同的參數(shù)配置方式,文章圍繞主題展開詳細的內容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Golang中Json的序列化和反序列化的使用

    Golang中Json的序列化和反序列化的使用

    本文主要介紹了Golang中Json的序列化和反序列化的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Go語言提升開發(fā)效率的語法糖技巧分享

    Go語言提升開發(fā)效率的語法糖技巧分享

    每門語言都有自己的語法糖,像java的語法糖就有方法變長參數(shù)、拆箱與裝箱、枚舉、for-each等等,Go語言也不例外。本文就來介紹一些Go語言的語法糖,需要的可以參考一下
    2022-07-07

最新評論