脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Golang - Go语言实现新春祝福二维码的生成

Go语言实现新春祝福二维码的生成

2023-03-20 12:03小雄Ya Golang

二维码现在是随处度可以看到,买东西,支付,添加好友只要你扫一扫就能完成整个工作,简单且方便。所以利用这个新春佳节做一个带着新春祝福的二维码吧

前言

二维码现在是随处度可以看到,买东西,支付,添加好友只要你扫一扫就能完成整个工作,简单且方便。所以利用这个新春佳节做一个带着新春祝福的二维码。

简单二维码生成

Go 有一个 go-qrCode 库可以很简单的完成该项功能。首先需要下载该包。

?
1
go get github.com/skip2/go-qrcode

下载完之后就可以简单创建一个 Go项目。

?
1
2
3
4
5
func main(){
   qrcode.WriteFile("新年快乐", qrcode.Medium, 256, "./bestWish.png")
 
  qrcode.WriteColorFile("新年快乐", qrcode.Medium, 256, color.RGBA{50, 205, 50, 255}, color.White, "./bestWish.png")
}

简单实用上面的代码,就可以生成一个二维码图片,然后用手机扫一扫就能看到内容。第二个方法可以生成一个带有彩色背景的二维码。

?
1
2
3
4
5
6
7
8
9
10
11
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 函数就能完成二维码生成,其中有4个参数:

  • content 生成二维码的内容,可以是任意字符串
  • level 是二维码容错级别:有四个等级Low、Medium、High、Highest。
  • size 是生成图片的宽和高,像素单位
  • filename 生成二维码文件的路径
  • background 背景色 ,foreground 前景色

Go语言实现新春祝福二维码的生成

字节流二维码

在一些场景中可能不想直接生成图片进行存储或者在网络上传输时使用字节流可以更加方便且高效,所以可以使用 Encode 函数生成一个图片字节流。

?
1
func Encode(content string, level RecoveryLevel, size int) ([]byte, error

所以生成一个二维码其实很简单,直接使用第三方库go-qrcode 就可以完成简单的二维码生成。其也支持对它设置背景色和前景色。在一些网络传输可以使用生成二维码字节流进行传输,也可以使用字节流进行存储可以节省空间。

识别二维码

golang 可以生成二维码自然也可以识别二维码。可以使用库 github.com/tuotoo/qrcode。识别二维码原理就是打开一张图片,然后使用 Decode方法对图片进行解析,这样就可以解析出来二维码中 content 内容。

?
1
2
3
4
5
6
7
8
9
10
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 内容

新春二维码很简单的完成。于是新年家族活动中通过设置了几个随机内容,类似刮奖,然后一个人随机生成一个二维码,看谁扫出最终结果就胜利的游戏。一个简单的新春游戏就诞生啦。

到此这篇关于Go语言实现新春祝福二维码的生成的文章就介绍到这了,更多相关Go语言生成祝福二维码内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7197056860007809083

延伸 · 阅读

精彩推荐
  • GolangGo 语言sort 中的sortInts 方法

    Go 语言sort 中的sortInts 方法

    这篇文章主要介绍了Go 语言sort 中的sortInts 方法,Go 的 sort 包实现了内置和用户定义类型的排序。我们将首先查看内置函数的排序,西瓦嗯更多相关资料需...

    宇宙之一粟4412022-09-28
  • Golang浅谈Go语言不提供隐式数字转换的原因

    浅谈Go语言不提供隐式数字转换的原因

    本文主要介绍了浅谈Go语言不提供隐式数字转换的原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    Amos-Chen6672023-03-15
  • Golanggoalng 结构体 方法集 接口实例详解

    goalng 结构体 方法集 接口实例详解

    这篇文章主要为大家介绍了goalng 结构体 方法集 接口实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    lambdang10622022-11-20
  • Golanggolang协程与线程区别简要介绍

    golang协程与线程区别简要介绍

    这篇文章主要介绍了golang协程与线程区别简要介绍,进程是操作系统资源分配的基本单位,是程序运行的实例,线程是操作系统调度到CPU中执行的基本单位...

    ysj8072022-10-26
  • Golang使用Golang的Context管理上下文的方法

    使用Golang的Context管理上下文的方法

    这篇文章主要介绍了使用Golang的Context管理上下文的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    mingkai_beijing2622020-05-28
  • Golang在Visual Studio Code中配置GO开发环境的详细教程

    在Visual Studio Code中配置GO开发环境的详细教程

    这篇文章主要介绍了在Visual Studio Code中配置GO开发环境的详细教程,需要的朋友可以参考下 ...

    脚本之家10082020-05-05
  • Golanggolang如何利用原始套接字构造UDP包详解

    golang如何利用原始套接字构造UDP包详解

    这篇文章主要给大家介绍了关于golang如何利用原始套接字构造UDP包的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用golang具有一定的参...

    pinecone6102020-05-09
  • GolangGoLang切片相关问题梳理讲解

    GoLang切片相关问题梳理讲解

    这篇文章主要介绍了GoLang切片相关的七个问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    ~庞贝6022022-11-28