go语言编写图片验证码

Posted linpengfei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言编写图片验证码相关的知识,希望对你有一定的参考价值。

场景:
在开发中,我们经常会遇到图片验证码的代码开发。我们需要在前端访问我们的验证码接口时,能够生成图片验证码,并且验证码内容随机生成!其实很简单,我们可以用现成的”轮子“来实现我们的功能。
我们用到的是 github.com/afocus/captcha,它为我们提供了很好的方法,可以让我们自由的设置图片的大小、图片透明度、图片中字体等,有兴趣了解的朋有,可以查看官方文档了解学习,这里我就不多介绍了,贴出我自己的代码,仅供大家参考
func main() {
cap := captcha.New()
//通过句柄调用 字体文件
if err := cap.SetFont("你字体文件的路径"); err != nil {
panic(err.Error())
}
//设置图片大小
cap.SetSize(91,50)
//设置感染强度
cap.SetDisturbance(captcha.NORMAL)
cap.SetFrontColor(color.RGBA{255, 255, 255, 255})
cap.SetBkgColor(color.RGBA{255, 0, 0, 255}, color.RGBA{0, 0, 255, 255}, color.RGBA{0, 153, 0, 255})
http.HandleFunc("/r", func(w http.ResponseWriter, r *http.Request) {
img,str := cap.Create(4,captcha.ALL)
png.Encode(w,img)
fmt.Println(str)
})
http.HandleFunc("/c", func(w http.ResponseWriter, r *http.Request) {
str := r.URL.RawQuery
img := cap.CreateCustom(str)
png.Encode(w,img)
})
http.ListenAndServe(":9090",nil)
}

  我这里是通过socket的方式进行开发测试,能够看到更好更方便的看到效果,希望对大家有所帮助!


























以上是关于go语言编写图片验证码的主要内容,如果未能解决你的问题,请参考以下文章

求解用java语言 编写一个身份证的类,可以用来验证身份证的长度,并可以显示地址码,生日,性别。

图片识别之验证码识别

图片识别之验证码识别

PHP编写的图片验证码类文件分享方法

go 发送短信研究

比特币地址生成过程 go语言版本