content: package org.ruoyi.common.web.config;
  
  import cn.hutool.captcha.CaptchaUtil;
  import cn.hutool.captcha.CircleCaptcha;
  import cn.hutool.captcha.LineCaptcha;
  import cn.hutool.captcha.ShearCaptcha;
  import org.ruoyi.common.web.config.properties.CaptchaProperties;
  import org.springframework.boot.autoconfigure.AutoConfiguration;
  import org.springframework.boot.context.properties.EnableConfigurationProperties;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Lazy;
  
  import java.awt.*;
  
  /**
   * 验证码配置
   *
   * @author Lion Li
   */
  @AutoConfiguration
  @EnableConfigurationProperties(CaptchaProperties.class)
  public class CaptchaConfig {
  
      private static final int WIDTH = 160;
      private static final int HEIGHT = 60;
      private static final Color BACKGROUND = Color.PINK;
      private static final Font FONT = new Font("Arial", Font.BOLD, 48);
  
      /**
       * 圆圈干扰验证码
       */
      @Lazy
      @Bean
      public CircleCaptcha circleCaptcha() {
          CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(WIDTH, HEIGHT);
          captcha.setBackground(BACKGROUND);
          captcha.setFont(FONT);
          return captcha;
      }
  
      /**
       * 线段干扰的验证码
       */
      @Lazy
      @Bean
      public LineCaptcha lineCaptcha() {
          LineCaptcha captcha = CaptchaUtil.createLineCaptcha(WIDTH, HEIGHT);
          captcha.setBackground(BACKGROUND);
          captcha.setFont(FONT);
          return captcha;
      }
  
      /**
       * 扭曲干扰验证码
       */
      @Lazy
      @Bean
      public ShearCaptcha shearCaptcha() {
          ShearCaptcha captcha = CaptchaUtil.createShearCaptcha(WIDTH, HEIGHT);
          captcha.setBackground(BACKGROUND);
          captcha.setFont(FONT);
          return captcha;
      }
  
  }
  