mirror of https://github.com/mindoc-org/mindoc.git
66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
|
# gocaptcha
|
|||
|
一个简单的Go语言实现的验证码
|
|||
|
|
|||
|
##图片实例
|
|||
|
|
|||
|
![image](https://raw.githubusercontent.com/lifei6671/gocaptcha/master/example/image_1.jpg)
|
|||
|
![image](https://raw.githubusercontent.com/lifei6671/gocaptcha/master/example/image_2.jpg)
|
|||
|
![image](https://raw.githubusercontent.com/lifei6671/gocaptcha/master/example/image_3.jpg)
|
|||
|
![image](https://raw.githubusercontent.com/lifei6671/gocaptcha/master/example/image_4.jpg)
|
|||
|
|
|||
|
##简介
|
|||
|
|
|||
|
基于Golang实现的图片验证码生成库,可以实现随机字母个数,随机直线,随机噪点等。可以设置任意多字体,每个验证码随机选一种字体展示。
|
|||
|
|
|||
|
##实例
|
|||
|
|
|||
|
####使用:
|
|||
|
|
|||
|
```
|
|||
|
go get github.com/lifei6671/gocaptcha/
|
|||
|
```
|
|||
|
|
|||
|
####使用的类库
|
|||
|
|
|||
|
```
|
|||
|
go get github.com/golang/freetype
|
|||
|
go get github.com/golang/freetype/truetype
|
|||
|
go get golang.org/x/image
|
|||
|
```
|
|||
|
天朝可以去 http://www.golangtc.com/download/package 或 https://gopm.io 下载
|
|||
|
|
|||
|
####代码
|
|||
|
具体实例可以查看example目录,有生成的验证码图片。
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
func Get(w http.ResponseWriter, r *http.Request) {
|
|||
|
//初始化一个验证码对象
|
|||
|
captchaImage,err := gocaptcha.NewCaptchaImage(dx,dy,gocaptcha.RandLightColor());
|
|||
|
|
|||
|
//画上三条随机直线
|
|||
|
captchaImage.Drawline(3);
|
|||
|
|
|||
|
//画边框
|
|||
|
captchaImage.DrawBorder(gocaptcha.ColorToRGB(0x17A7A7A));
|
|||
|
|
|||
|
//画随机噪点
|
|||
|
captchaImage.DrawNoise(gocaptcha.CaptchaComplexHigh);
|
|||
|
|
|||
|
//画随机文字噪点
|
|||
|
captchaImage.DrawTextNoise(gocaptcha.CaptchaComplexLower);
|
|||
|
//画验证码文字,可以预先保持到Session种或其他储存容器种
|
|||
|
captchaImage.DrawText(gocaptcha.RandText(4));
|
|||
|
if err != nil {
|
|||
|
fmt.Println(err)
|
|||
|
}
|
|||
|
//将验证码保持到输出流种,可以是文件或HTTP流等
|
|||
|
captchaImage.SaveImage(w,gocaptcha.ImageFormatJpeg);
|
|||
|
}
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|