https://github.com/lifei6671/gocaptcha
一个Golang实现的验证码生成库。支持自定义字体文字,支持增加干扰性,扭曲字体等。
https://github.com/lifei6671/gocaptcha
captcha golang image
Last synced: about 2 months ago
JSON representation
一个Golang实现的验证码生成库。支持自定义字体文字,支持增加干扰性,扭曲字体等。
- Host: GitHub
- URL: https://github.com/lifei6671/gocaptcha
- Owner: lifei6671
- License: apache-2.0
- Created: 2016-06-03T09:38:21.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-11-20T10:54:27.000Z (7 months ago)
- Last Synced: 2024-11-20T12:15:15.328Z (7 months ago)
- Topics: captcha, golang, image
- Language: Go
- Homepage:
- Size: 3.72 MB
- Stars: 182
- Watchers: 10
- Forks: 61
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- go-awesome - gocaptcha - verification code generation (Open source library / Graphics Processing)
README
# gocaptcha
一个简单的Go语言实现的验证码### 图片实例



## 简介
基于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
```#### 代码
具体实例可以查看example目录,有生成的验证码图片。```
func Get(w http.ResponseWriter, r *http.Request) {
captchaImage := gocaptcha.New(dx, dy, gocaptcha.RandLightColor())
err := captchaImage.
DrawBorder(gocaptcha.RandDeepColor()).
DrawNoise(gocaptcha.NoiseDensityHigh, gocaptcha.NewTextNoiseDrawer(gocaptcha.DefaultDPI)).
DrawNoise(gocaptcha.NoiseDensityLower, gocaptcha.NewPointNoiseDrawer()).
DrawLine(gocaptcha.NewBezier3DLine(), gocaptcha.RandDeepColor()).
DrawText(gocaptcha.NewTwistTextDrawer(gocaptcha.DefaultDPI, gocaptcha.DefaultAmplitude, gocaptcha.DefaultFrequency), gocaptcha.RandText(4)).
DrawLine(gocaptcha.NewBeeline(), gocaptcha.RandDeepColor()).
//DrawLine(gocaptcha.NewHollowLine(), gocaptcha.RandLightColor()).
DrawBlur(gocaptcha.NewGaussianBlur(), gocaptcha.DefaultBlurKernelSize, gocaptcha.DefaultBlurSigma).
Error
if err != nil {
fmt.Println(err)
}
_ = captchaImage.Encode(w, gocaptcha.ImageFormatJpeg)
}// 初始化字体
func init() {
err := gocaptcha.SetFontPath("../fonts/")
if err != nil {
panic(err)
}
}```