Go語言實現(xiàn)新春祝福二維碼的生成
前言
二維碼現(xiàn)在是隨處度可以看到,買東西,支付,添加好友只要你掃一掃就能完成整個工作,簡單且方便。所以利用這個新春佳節(jié)做一個帶著新春祝福的二維碼。
簡單二維碼生成
Go 有一個 go-qrCode 庫可以很簡單的完成該項功能。首先需要下載該包。
go get github.com/skip2/go-qrcode
下載完之后就可以簡單創(chuàng)建一個 Go項目。
func main(){ qrcode.WriteFile("新年快樂", qrcode.Medium, 256, "./bestWish.png") qrcode.WriteColorFile("新年快樂", qrcode.Medium, 256, color.RGBA{50, 205, 50, 255}, color.White, "./bestWish.png") }
簡單實用上面的代碼,就可以生成一個二維碼圖片,然后用手機掃一掃就能看到內(nèi)容。第二個方法可以生成一個帶有彩色背景的二維碼。
func WriteFile(content string, level RecoveryLevel, size int, filename string) error { var q *QRCode q, err := New(content, level) if err != nil { return err } return q.WriteFile(size, filename) }
用 WriteFile / WriteColorFile 函數(shù)就能完成二維碼生成,其中有4個參數(shù):
- content 生成二維碼的內(nèi)容,可以是任意字符串
- level 是二維碼容錯級別:有四個等級Low、Medium、High、Highest。
- size 是生成圖片的寬和高,像素單位
- filename 生成二維碼文件的路徑
- background 背景色 ,foreground 前景色
字節(jié)流二維碼
在一些場景中可能不想直接生成圖片進行存儲或者在網(wǎng)絡(luò)上傳輸時使用字節(jié)流可以更加方便且高效,所以可以使用 Encode 函數(shù)生成一個圖片字節(jié)流。
func Encode(content string, level RecoveryLevel, size int) ([]byte, error)
所以生成一個二維碼其實很簡單,直接使用第三方庫go-qrcode 就可以完成簡單的二維碼生成。其也支持對它設(shè)置背景色和前景色。在一些網(wǎng)絡(luò)傳輸可以使用生成二維碼字節(jié)流進行傳輸,也可以使用字節(jié)流進行存儲可以節(jié)省空間。
識別二維碼
golang 可以生成二維碼自然也可以識別二維碼??梢允褂脦?github.com/tuotoo/qrcode
。識別二維碼原理就是打開一張圖片,然后使用 Decode方法對圖片進行解析,這樣就可以解析出來二維碼中 content 內(nèi)容。
fi, err := os.Open("bestWish.png") if err != nil { ... } defer fi.Close() qrmatrix, err := qrcode.Decode(fi) // 解析 if err != nil { ... } fmt.Println(qrmatrix.Content) // 輸出 content 內(nèi)容
新春二維碼很簡單的完成。于是新年家族活動中通過設(shè)置了幾個隨機內(nèi)容,類似刮獎,然后一個人隨機生成一個二維碼,看誰掃出最終結(jié)果就勝利的游戲。一個簡單的新春游戲就誕生啦。
到此這篇關(guān)于Go語言實現(xiàn)新春祝福二維碼的生成的文章就介紹到這了,更多相關(guān)Go語言生成祝福二維碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go處理json數(shù)據(jù)方法詳解(Marshal,UnMarshal)
這篇文章主要介紹了Go處理json數(shù)據(jù)的方法詳解,Marshal(),UnMarshal(),需要的朋友可以參考下2022-04-04實時通信的服務(wù)器推送機制 EventSource(SSE) 簡介附go實現(xiàn)示例代碼
EventSource是一種非常有用的 API,適用于許多實時應(yīng)用場景,它提供了一種簡單而可靠的方式來建立服務(wù)器推送連接,并實現(xiàn)實時更新和通知,這篇文章主要介紹了實時通信的服務(wù)器推送機制 EventSource(SSE)簡介附go實現(xiàn)示例,需要的朋友可以參考下2024-03-03Go操作Kafka的實現(xiàn)示例(kafka-go)
本文介紹了使用kafka-go庫在Go語言中與Kafka進行交互,涵蓋了kafka-go的安裝、API使用、消息發(fā)送與消費方法,以及如何通過DockerCompose快速搭建Kafka環(huán)境,文章還比較了其他兩個常用的Kafka客戶端庫,感興趣的可以了解一下2024-10-10