工具类执行效果如下,我用到原图是300x150的,可以根据实际情况修改参数,第二版简化了配置参数,对抠图做了灰化滤镜
绝对有效,欢迎评论留言
代码如下:
import org.springframework.stereotype.Component;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Iterator;
import java.util.Random;
import java.util.UUID;
/**
* @author : 金亮
* @version V2.0
* @Description: 滑块验证根据原图生成滑块图片和抠图后的图片工具类
* @date : 2019年06月17日 19:31
*/
@Component
public class ImageSliderUtil {
public final static String uploadPath = "D:/";
/**
* 圆心半径
*/
public final static int r = 12;
public static void main(String[] args) {
Random rand = new Random();
int length = 60;
int width = 40;
try {
BufferedImage image = ImageSliderUtil.Images("D:/1.png");
//定义随机数
int minX = 30;
int maxX = image.getWidth() - length-10;
int minY = 10;
int maxY = image.getHeight() - width-10;
Integer rx = rand.nextInt(maxX - minX) + minX;//x轴
Integer ry = rand.nextInt(maxY - minY) + minY;//y轴
int[][] templateImage = ImageSliderUtil.getCutAreaData(image.getWidth(), image.getHeight(), rx, ry, length, width);
BufferedIma