-
Notifications
You must be signed in to change notification settings - Fork 55
Quickstart
hanguofeng edited this page Sep 7, 2013
·
1 revision
1.生成WordManager
WordManager用于加载用户自定义的词典或字符集
支持两类:
* 词典:每行一个中文或英文词,UTF-8不含BOM格式
* 字符集:每行一个字,可以为字母、数字或汉字,从美观角度,汉字和非汉字不建议混用
path := "F:\\go\\src\\github.com\\hanguofeng\\gocaptcha\\data\\cn_phrases"
wordmgr := new(WordManager)
wordmgr.LoadFromFile(path)
captchaConfig, imageConfig, filterConfig := loadConfig()
func loadConfig() (*CaptchaConfig, *ImageConfig, *FilterConfig) {
//生成CaptchaConfig
captchaConfig := new(CaptchaConfig)
captchaConfig.CaptchaLifeTime = 10 * time.Second //验证码从生成字符串到用户输入验证的有效周期
captchaConfig.GcProbability = 1 //过期验证码的回收概率
captchaConfig.GcDivisor = 100 //过期验证码的回收概率(GcProbability/GcDivisor)
//生成ImageConfig
imageConfig := new(ImageConfig)
imageConfig.fontFiles = []string{
"c:/windows/fonts/SIMLI.TTF",
"c:/windows/fonts/simfang.ttf",
"c:/windows/fonts/SIMYOU.TTF",
"c:/windows/fonts/msyh.TTF",
"c:/windows/fonts/simhei.ttf",
"c:/windows/fonts/simkai.ttf"} //验证码的字体文件,会每个字随机的使用这些字体
imageConfig.fontSize = 26 //字号
imageConfig.height = 40 //生成的图片高度(px)
imageConfig.width = 120 //生成的图片宽度(px)
//生成FilterConfig
filterConfig := new(FilterConfig)
filterConfig.enableNoiseLine = true //启用干扰线
filterConfig.enableNoisePoint = true //启用噪点
filterConfig.enableStrike = true //启用波形干扰
filterConfig.strikeLineNum = 3 //波形干扰数目
filterConfig.noisePointNum = 30 //噪点数目
filterConfig.noiseLineNum = 10 //干扰线数目
return captchaConfig, imageConfig, filterConfig
}
captcha := CreateCaptcha(wordmgr, captchaConfig, imageConfig, filterConfig)
//4为验证码内文字长度,如加载的是词典而非字符集的数据文件,则此参数无效(但仍需传递)
key := captcha.GetKey(4)
img, err := captcha.GetImage(key)
用你需要的方式将img(类型为image.Image)输出给用户即可
将第4步生成的key和用户输入一起传入进行比较
captcha.Verify(key, "用户输入")