安装
go get -u github.com/yeqown/go-qrcode/v2
功能
- 通常生成
version 1
到version 40
的二维码(关于二维码的version戳这里) - 按源文本自动分析 QR version。
- 允许使用
WithCustomShape
指定单元格形状WithCircleShape
(默认为rectangle
) - 使用
WithBuiltinImageEncoder
、WithCustomImageEncoder
指定输出文件的格式(默认为JPEG
) WithLogoImage
,WithLogoImageFilePNG
,WithLogoImageFileJPEG
帮助您在二维码中心添加一个图标。WithBorderWidth
允许指定 qrcode 周围 4 边的任意宽度。- 支持 WebAssembly (请看官方文档)
- 支持 Halftone QR Codes
实例
package main
import (
"fmt"
"github.com/yeqown/go-qrcode/v2"
"github.com/yeqown/go-qrcode/writer/standard"
)
func main() {
// 新建二维码链接
qrc, err := qrcode.NewWith("https://anubis.cafe/")
if err != nil {
fmt.Printf("could not generate QRCode: %v", err)
return
}
// 设置二维码编写器的文件保存路径
w, err := standard.New("./1.png")
if err != nil {
fmt.Printf("standard.New failed: %v", err)
return
}
// 保存文件
if err = qrc.Save(w); err != nil {
fmt.Printf("could not save image: %v", err)
}
}
用法
生成二维码
使用 qrcode.New
生成一个二维码
qrc, err := qrcode.New("https://anubis.cafe/")
if err != nil {
fmt.Printf("could not generate QRCode: %v", err)
return
}
指定二维码版本
qrc, err := qrcode.NewWith("https://anubis.cafe/",qrcode.WithVersion(2))
if err != nil {
fmt.Printf("could not generate QRCode: %v", err)
return
}
设置二维码呈现效果
w, err := standard.New("./1.png", standard.WithLogoImageFilePNG("./2.png"))
if err != nil {
fmt.Printf("standard.New failed: %v", err)
return
}
利用 standard 包中的参数来进行二维码的设置
WithBgTransparent()
设置二维码背景透明WithBgColor(c color.Color)
设置背景颜色WithBgColorRGBHex(hex string)
设置RGB十六进制背景色WithFgColor(c color.Color)
设置二维码条纹颜色WithFgColorRGBHex(hex string)
设置RGB十六进制条纹色WithLogoImage(img image.Image)
设置 logo (图像最多只能有QRCode的1/5宽度)WithLogoImageFileJPEG(f string)
设置 jpeg 图片为 logo,限制同上WithLogoImageFilePNG(f string)
设置 png 图片为 logo,限制同上WithQRWidth(width uint8)
指定每个二维码块的宽度WithCircleShape()
将二维码块设置为圆形WithCustomShape(shape IShape)
将二维码块设置为自定义形状WithBuiltinImageEncoder(format formatTyp)
WithBorderWidth(a)
指定4个边的边框宽度为a。WithBorderWidth(a, b)
上/下=a,左/右=b。WithBorderWidth(a, b, c, d)
意思是上,右,下,左WithCustomImageEncoder(encoder ImageEncoder)
使用自定义图像编码器WithBuiltinImageEncoder(format formatTyp)
使用 JPEG_FORMAT 或 PNG_FORMAT 编码器WithHalftone(path string)
请看下面使用自定义图片作为样式
使用自定义图片作为样式
🚧请注意,不能使用矩形以外的其他形状,因为 qr 块之间的间隙可能会误导识别器。
package main
import (
"fmt"
"github.com/yeqown/go-qrcode/v2"
"github.com/yeqown/go-qrcode/writer/standard"
)
func main() {
// 新建二维码链接
qrc, err := qrcode.NewWith("https://anubis.cafe/")
if err != nil {
fmt.Printf("could not generate QRCode: %v", err)
return
}
// 设置二维码编写器的文件保存路径
w, err := standard.New("./1.png",
standard.WithHalftone("./2.png"),
standard.WithQRWidth(100))
if err != nil {
fmt.Printf("standard.New failed: %v", err)
return
}
// 保存文件
if err = qrc.Save(w); err != nil {
fmt.Printf("could not save image: %v", err)
}
}