Java滑动验证码生成【后端工具类】

在这里插入图片描述

一、滑动验证码生成思路

  • 1、随机选择一张图片
  • 2、生成滑块起点位置(x, y)
  • 3、生成滑块轮廓
  • 4、抠出滑块
  • 5、将滑块部位去除颜色

二、主要方法

这里使用的方法是:先抠出中间的正方形,再将凹凸槽的RGB渲染上去

  • 1、扣主体
    • 将自定义滑块大小扩大三分之二,用来做凸槽
  • 2、抠凸槽

三、生成代码

  • 滑块验证码实体类
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author: Yang
 * @create: 2022-10-25
 * @Description: 滑动验证码实体
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ImageSlideVerify {
   

    private String bgImg;// 底部图片
    private String blockImg;// 滑块图片
    private Integer x;// 开始x
    private Integer y;// 开始y
    private Integer bound;// 误差值
}
  • 生成滑块验证码
import com.yang.domain.vo.ImageSlideVerify;
import org.apache.tomcat.util.codec.binary.Base64;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Random;
import java.util.UUID;

import javax.imageio.ImageIO;

/**
 * 滑动验证码
 * @author Yang
 *
 */
public class ImageSlideVerifyUtil {
   
	
	private static Integer x, y;// x , y轴起点位置
	private static Integer blockSize; // 块大小

	public static void main(String[] args) throws IOException {
   
		File file = new File("4.jpeg");
		cutting(file, 80);
		cutting(file);
	}
	
	
	// 切割
	public static ImageSlideVerify cutting(File file, int size) {
   
		FileInputStream fis;
		blockSize = size;
		
		try {
   
			fis = new FileInputStream(file);
			BufferedImage image = ImageIO.read(fis);// 将文件流转图像流
			
			// 生成圆位置
			Integer cp[] = circle();// 下标对应:上右下左
			
			// 生成滑块
			BufferedImage im
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值