gocaptcha

package module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2021 License: Apache-2.0 Imports: 23 Imported by: 0

README

gocaptcha

一个简单的Go语言实现的验证码

图片实例

image image image image

简介

基于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/packagehttps://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);
	}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddFontFamily

func AddFontFamily(fontPath ...string)

添加一个字体路径到字体库.

func ColorToRGB

func ColorToRGB(colorVal int) color.RGBA

颜色代码转换为RGB input int output int red, green, blue.

func FileSystem

func FileSystem(fs embed.FS) error

func RandFontFamily

func RandFontFamily() (*truetype.Font, error)

获取所及字体.

func RandLightColor

func RandLightColor() color.RGBA

随机生成浅色.

func RandText

func RandText(num int) string

生成随机字体.

func Random

func Random(min int64, max int64) float64

生成指定大小的随机数.

func ReadFile

func ReadFile(name string) ([]byte, error)

ReadFile 读取文件,优先从设置的文件系统中读取,失败后从内置文件系统读取,失败后从磁盘读取.

func ReadFonts

func ReadFonts(dirPth string, suffix string) (err error)

获取指定目录下的所有文件,不进入下一级目录搜索,可以匹配后缀过滤。

Types

type CaptchaComplex

type CaptchaComplex int
const (
	//验证码噪点强度
	CaptchaComplexLower CaptchaComplex = iota
	CaptchaComplexMedium
	CaptchaComplexHigh
)

type CaptchaImage

type CaptchaImage struct {
	Complex int
	Error   error
	// contains filtered or unexported fields
}

func New

func New(width int, height int, bgColor color.RGBA) *CaptchaImage

New 新建一个图片对象

func NewCaptchaImage

func NewCaptchaImage(width int, height int, bgColor color.RGBA) *CaptchaImage

NewCaptchaImage 新建一个图片对象 Deprecated: 弃用

func (*CaptchaImage) DrawBorder

func (captcha *CaptchaImage) DrawBorder(borderColor color.RGBA) *CaptchaImage

DrawBorder 画边框.

func (*CaptchaImage) DrawHollowLine

func (captcha *CaptchaImage) DrawHollowLine() *CaptchaImage

DrawHollowLine 添加一个较粗的空白直线

func (*CaptchaImage) DrawLine

func (captcha *CaptchaImage) DrawLine(num int) *CaptchaImage

DrawLine 画一条直线.

func (*CaptchaImage) DrawNoise

func (captcha *CaptchaImage) DrawNoise(complex CaptchaComplex) *CaptchaImage

DrawNoise 画噪点.

func (*CaptchaImage) DrawSineLine

func (captcha *CaptchaImage) DrawSineLine() *CaptchaImage

DrawSineLine 画一条曲线.

func (*CaptchaImage) DrawText

func (captcha *CaptchaImage) DrawText(text string) *CaptchaImage

DrawText 写字.

func (*CaptchaImage) DrawTextNoise

func (captcha *CaptchaImage) DrawTextNoise(complex CaptchaComplex) *CaptchaImage

DrawTextNoise 画文字噪点.

func (*CaptchaImage) Save

func (captcha *CaptchaImage) Save() (io io.Reader, err error)

func (*CaptchaImage) SaveImage

func (captcha *CaptchaImage) SaveImage(w io.Writer, imageFormat ImageFormat) error

SaveImage 保存图片对象

type ImageFormat

type ImageFormat int
const (
	//图片格式
	ImageFormatPng ImageFormat = iota
	ImageFormatJpeg
	ImageFormatGif
)

type Point

type Point struct {
	X int
	Y int
}

func NewPoint

func NewPoint(x int, y int) *Point

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL