Package org.miaixz.bus.extra.captcha
Class AbstractProvider
java.lang.Object
org.miaixz.bus.extra.captcha.AbstractProvider
- All Implemented Interfaces:
Serializable,CaptchaProvider
- Direct Known Subclasses:
CircleProvider,ClickWordProvider,GifProvider,LineProvider,PuzzleProvider,ShearProvider
抽象验证码
抽象验证码实现了验证码字符串的生成、验证,验证码图片的写出
实现类通过实现
createImage(String) 方法生成图片对象- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Color背景色protected String验证码protected Font字体protected CodeStrategy验证码生成器protected int图片的高度protected byte[]验证码图片protected int验证码干扰元素个数protected AlphaComposite文字透明度protected int图片的宽度 -
Constructor Summary
ConstructorsConstructorDescriptionAbstractProvider(int width, int height, int codeCount, int interfereCount) 构造,使用随机验证码生成器生成验证码AbstractProvider(int width, int height, CodeStrategy generator, int interfereCount) 构造AbstractProvider(int width, int height, CodeStrategy generator, int interfereCount, float sizeBaseHeight) 构造 -
Method Summary
Modifier and TypeMethodDescriptionvoidcreate()创建验证码,实现类需同时生成随机验证码字符串和验证码图片protected abstract ImagecreateImage(String code) 根据生成的code创建验证码图片protected void生成验证码字符串get()获取验证码的文字内容获取验证码生成器getImage()获取验证码图 注意返回的BufferedImage使用完毕后需要调用Image.flush()释放资源获得图片的Base64形式获取图片带文件格式的 Base64byte[]获取图形验证码图片bytesvoidsetBackground(Color background) 设置背景色,null表示透明背景void自定义字体voidsetGenerator(CodeStrategy generator) 设置验证码生成器voidsetTextAlpha(float textAlpha) 设置文字透明度boolean验证验证码是否正确,建议忽略大小写void验证码写出到文件voidwrite(OutputStream out) 将验证码写出到目标流中void验证码写出到文件
-
Field Details
-
width
protected int width图片的宽度 -
height
protected int height图片的高度 -
interfereCount
protected int interfereCount验证码干扰元素个数 -
font
字体 -
code
验证码 -
imageBytes
protected byte[] imageBytes验证码图片 -
generator
验证码生成器 -
background
背景色 -
textAlpha
文字透明度
-
-
Constructor Details
-
AbstractProvider
public AbstractProvider(int width, int height, int codeCount, int interfereCount) 构造,使用随机验证码生成器生成验证码- Parameters:
width- 图片宽height- 图片高codeCount- 字符个数interfereCount- 验证码干扰元素个数
-
AbstractProvider
构造- Parameters:
width- 图片宽height- 图片高generator- 验证码生成器interfereCount- 验证码干扰元素个数
-
AbstractProvider
public AbstractProvider(int width, int height, CodeStrategy generator, int interfereCount, float sizeBaseHeight) 构造- Parameters:
width- 图片宽height- 图片高generator- 验证码生成器interfereCount- 验证码干扰元素个数sizeBaseHeight- 字体的大小 高度的倍数
-
-
Method Details
-
create
public void create()Description copied from interface:CaptchaProvider创建验证码,实现类需同时生成随机验证码字符串和验证码图片- Specified by:
createin interfaceCaptchaProvider
-
generateCode
protected void generateCode()生成验证码字符串 -
createImage
根据生成的code创建验证码图片- Parameters:
code- 验证码- Returns:
- Image
-
get
Description copied from interface:CaptchaProvider获取验证码的文字内容- Specified by:
getin interfaceCaptchaProvider- Returns:
- 验证码文字内容
-
verify
Description copied from interface:CaptchaProvider验证验证码是否正确,建议忽略大小写- Specified by:
verifyin interfaceCaptchaProvider- Parameters:
userInputCode- 用户输入的验证码- Returns:
- 是否与生成的一直
-
write
验证码写出到文件- Parameters:
path- 文件路径- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
write
验证码写出到文件- Parameters:
file- 文件- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
write
Description copied from interface:CaptchaProvider将验证码写出到目标流中- Specified by:
writein interfaceCaptchaProvider- Parameters:
out- 目标流
-
getImageBytes
public byte[] getImageBytes()获取图形验证码图片bytes- Returns:
- 图形验证码图片bytes
-
getImage
获取验证码图 注意返回的BufferedImage使用完毕后需要调用Image.flush()释放资源- Returns:
- 验证码图
-
getImageBase64
获得图片的Base64形式- Returns:
- 图片的Base64
-
getImageBase64Data
获取图片带文件格式的 Base64- Returns:
- 图片带文件格式的 Base64
-
setFont
自定义字体- Parameters:
font- 字体
-
getGenerator
获取验证码生成器- Returns:
- 验证码生成器
-
setGenerator
设置验证码生成器- Parameters:
generator- 验证码生成器
-
setBackground
设置背景色,null表示透明背景- Parameters:
background- 背景色
-
setTextAlpha
public void setTextAlpha(float textAlpha) 设置文字透明度- Parameters:
textAlpha- 文字透明度,取值0~1,1表示不透明
-