• 利用GUI实现渲染二维码效果


    以下是一个简单的 Java 验证码实现示例:

    1. import java.awt.Color;
    2. import java.awt.Font;
    3. import java.awt.Graphics;
    4. import java.awt.image.BufferedImage;
    5. import java.util.Random;
    6. import javax.imageio.ImageIO;
    7. public class CaptchaGenerator {
    8. public static BufferedImage generateCaptchaImage(String captchaCode) {
    9. int width = 200;
    10. int height = 50;
    11. BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    12. Graphics g = image.getGraphics();
    13. // 设置背景颜色
    14. g.setColor(Color.WHITE);
    15. g.fillRect(0, 0, width, height);
    16. // 设置边框
    17. g.setColor(Color.BLACK);
    18. g.drawRect(0, 0, width - 1, height - 1);
    19. // 设置字体
    20. g.setFont(new Font("Times New Roman", Font.BOLD, 40));
    21. // 绘制验证码
    22. g.setColor(Color.BLACK);
    23. g.drawString(captchaCode, 50, 40);
    24. // 绘制噪点
    25. Random rnd = new Random();
    26. for (int i = 0; i < 100; i++) {
    27. int x = rnd.nextInt(width);
    28. int y = rnd.nextInt(height);
    29. g.setColor(new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)));
    30. g.drawLine(x, y, x, y);
    31. }
    32. g.dispose();
    33. return image;
    34. }
    35. }

    这个方法接受一个字符串作为验证码文本,并返回一个绘制了验证码文本和噪点的 BufferedImage 对象。你可以将其保存到文件或将其显示到网页中。以下是一个使用示例:

    1. public static void main(String[] args) throws Exception {
    2. String captchaCode = generateRandomCode();
    3. BufferedImage image = CaptchaGenerator.generateCaptchaImage(captchaCode);
    4. // 保存生成的验证码图片
    5. ImageIO.write(image, "JPEG", new File("captcha.jpg"));
    6. // 显示生成的验证码图片
    7. JFrame frame = new JFrame();
    8. JLabel label = new JLabel(new ImageIcon(image));
    9. frame.getContentPane().add(label);
    10. frame.pack();
    11. frame.setVisible(true);
    12. }

    在这里,我们首先生成随机的验证码文本,然后使用 CaptchaGenerator 类生成验证码图片。最后,我们将图片保存到文件和显示到 JFrame 中。

    效果如下:

  • 相关阅读:
    Dubbo源码(七) - 集群
    vue2_路由01_路由的基本使用
    ELK集群安装
    嵌入式4-24
    关于谷歌浏览器设置打开时页面不起作用的解决方法
    idea社区版支持JavaScript和css、html,以及相关插件
    C语言之指针
    vue指令相关的问题
    Angular中ng-template和ng-container的应用
    微信核酸检测预约小程序系统毕业设计毕设(4)开题报告
  • 原文地址:https://blog.csdn.net/m0_37649480/article/details/134557488