#最新
基于go的二维码生成器

2023-02-18 0 304

安装

go
go get -u github.com/yeqown/go-qrcode/v2

功能

  • 通常生成version 1version 40二维码(关于二维码的version戳这里)
  • 按源文本自动分析 QR version。
  • 允许使用WithCustomShape指定单元格形状WithCircleShape(默认为rectangle
  • 使用WithBuiltinImageEncoderWithCustomImageEncoder指定输出文件的格式(默认为JPEG
  • WithLogoImageWithLogoImageFilePNG,WithLogoImageFileJPEG帮助您在二维码中心添加一个图标。
  • WithBorderWidth允许指定 qrcode 周围 4 边的任意宽度。
  • 支持 WebAssembly (请看官方文档)
  • 支持 Halftone QR Codes

实例

go
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 生成一个二维码

go
qrc, err := qrcode.New("https://anubis.cafe/")
	if err != nil {
		fmt.Printf("could not generate QRCode: %v", err)
		return
	}

指定二维码版本

go
qrc, err := qrcode.NewWith("https://anubis.cafe/",qrcode.WithVersion(2))
if err != nil {
	fmt.Printf("could not generate QRCode: %v", err)
	return
}

设置二维码呈现效果

go
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 块之间的间隙可能会误导识别器。

go
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)
	}
}

 

基于go的二维码生成器

基于go的二维码生成器

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (1)

© 版权声明: 本站所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 I8N社区 !
=============================================================
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!

I8N社区 知识库 基于go的二维码生成器 https://www.i8n.com/1385.html

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务