您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“怎么用go語言編程實現二維碼生成及識別”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么用go語言編程實現二維碼生成及識別”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
我們不得不慶幸go的生態已經越來越豐富,有很多大牛已經幫我們寫好了庫,我們不必造輪子,直接拿過來用就好。
首先,我們安裝我們用到的go-qrcode
庫。
go get -u github.com/skip2/go-qrcode/…
使用了這個庫,你會發現二維碼生成原來是如此的簡單,現在我們就來演示一下。
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的參數。
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的參數,比WriteFile
多了兩個參數 background, foreground color.Color 。我們可以從字面意思就知道,background 是背景顏色,foreground是前景顏色。
顏色我們可以使用 color
定義 ,它為我們定義了兩個默認顏色,Black和White。如果我們想用其他顏色怎么辦呢?它為我們提供了color.RGBA() 這個方法,RGBA()有4個參數 分別是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") }
上面我們講了怎么生成二維,現在我們來實習解析二維碼,當然我們還是需要借助別人寫的庫。
首先我們安裝庫
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語言編程實現二維碼生成及識別”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。