生成条形码的算法或内部逻辑可在第三方条形码包中找到。这里的目标是展示一个示例,如何使用包并创建Web应用程序。
安装软件包:
go get github.com/boombuler/barcode
示例代码:main.go
FormValue函数将给出dataString输入字段的值,该字段将用于使用Encode函数生成QR码。
package main
import (
"image/png"
"net/http"
"text/template"
"github.com/boombuler/barcode"
"github.com/boombuler/barcode/qr"
)
type Page struct {
Title string
}
func main() {
http.HandleFunc("/", homeHandler)
http.HandleFunc("/generator/", viewCodeHandler)
http.ListenAndServe(":8080", nil)
}
func homeHandler(w http.ResponseWriter, r *http.Request) {
p := Page{Title: "QR Code Generator"}
t, _ := template.ParseFiles("generator.html")
t.Execute(w, p)
}
func viewCodeHandler(w http.ResponseWriter, r *http.Request) {
dataString := r.FormValue("dataString")
qrCode, _ := qr.Encode(dataString, qr.L, qr.Auto)
qrCode, _ = barcode.Scale(qrCode, 512, 512)
png.Encode(w, qrCode)
}
示例代码:generator.html
<h1>{{.Title}}</h1>
<div>Please enter the string you want to QRCode.</div>
<form action="generator/" method=post>
<input type="text" name="dataString">
<input type="submit" value="Submit">
</form>