go语言编写图片验证码
2020-12-24 06:31
标签:内容 png 查看 raw url 测试 nic panic 语言 场景: go语言编写图片验证码 标签:内容 png 查看 raw url 测试 nic panic 语言 原文地址:https://www.cnblogs.com/linpengfei/p/13211095.html
在开发中,我们经常会遇到图片验证码的代码开发。我们需要在前端访问我们的验证码接口时,能够生成图片验证码,并且验证码内容随机生成!其实很简单,我们可以用现成的”轮子“来实现我们的功能。
我们用到的是 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的方式进行开发测试,能够看到更好更方便的看到效果,希望对大家有所帮助!