1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package net.lab1024.smartadmin.common.kaptcha;
- import com.google.code.kaptcha.NoiseProducer;
- import com.google.code.kaptcha.util.Configurable;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.util.Random;
- /**
- * [ 验证码加噪处理 ]
- *
- * @author yandanyang
- * @version 1.0
- * @company 1024lab.net
- * @copyright (c) 2018 1024lab.netInc. All rights reserved.
- * @date 2019/7/6 0006 上午 10:47
- * @since JDK1.8
- */
- public class KaptchaNoise extends Configurable implements NoiseProducer {
- public KaptchaNoise() {
- }
- @Override
- public void makeNoise(BufferedImage image, float factorOne, float factorTwo, float factorThree, float factorFour) {
- int width = image.getWidth();
- int height = image.getHeight();
- Graphics2D graph = (Graphics2D)image.getGraphics();
- graph.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON));
- graph.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL));
- Random random = new Random();
- int noiseLineNum = random.nextInt(3);
- if(noiseLineNum == 0){
- noiseLineNum = 1;
- }
- for (int i = 0; i < noiseLineNum; i++){
- graph.setColor(KaptchaColor.getColor());
- graph.drawLine(random.nextInt(width), random.nextInt(height), 10 + random.nextInt(20), 10 + random.nextInt(20));
- }
- graph.dispose();
- }
- }
|