工具类:随机生成图片和颜色

深碍√TFBOYSˉ_ 2024-03-22 15:32 159阅读 0赞
  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.HashMap;
  6. import java.util.Map;
  7. import java.util.Random;
  8. public class CodeUtil {
  9. private static final String[] chars = {
  10. "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c"};
  11. private static final int SIZE = 4;
  12. private static final int LINES = 8;
  13. private static final int WIDTH = 55;
  14. private static final int HEIGHT = 25;
  15. private static final int FONT_SIZE = 16;
  16. public static Map<String, BufferedImage> createImage() {
  17. StringBuffer sb = new StringBuffer();
  18. BufferedImage image = new BufferedImage(WIDTH, HEIGHT,
  19. BufferedImage.TYPE_INT_RGB);
  20. Graphics graphic = image.getGraphics();
  21. graphic.setColor(Color.WHITE);
  22. graphic.fillRect(0, 0, WIDTH, HEIGHT);
  23. Random ran = new Random();
  24. //画随机字符
  25. for (int i = 1; i <= SIZE; i++) {
  26. int r = ran.nextInt(chars.length);
  27. graphic.setColor(getRandomColor());
  28. graphic.setFont(new Font(null, Font.BOLD + Font.ITALIC, FONT_SIZE));
  29. graphic.drawString(chars[r], (i - 1) * WIDTH / SIZE, HEIGHT / 2);
  30. sb.append(chars[r]);//将字符保存,存入Session
  31. }
  32. //画干扰线
  33. for (int i = 2; i <= LINES; i++) {
  34. graphic.setColor(getRandomColor());
  35. graphic.drawLine(ran.nextInt(WIDTH), ran.nextInt(HEIGHT), ran.nextInt(WIDTH), ran.nextInt(HEIGHT));
  36. }
  37. Map<String, BufferedImage> map = new HashMap<String, BufferedImage>();
  38. map.put(sb.toString(), image);
  39. return map;
  40. }
  41. public static Color getRandomColor() {
  42. Random ran = new Random();
  43. Color color = new Color(ran.nextInt(256), ran.nextInt(256), ran.nextInt(256));
  44. return color;
  45. }
  46. public static void main(String[] args) {
  47. Map<String, BufferedImage> image = createImage();
  48. System.out.println(image);
  49. Color randomColor = getRandomColor();
  50. System.out.println(randomColor);
  51. }
  52. }

发表评论

表情:
评论列表 (有 0 条评论,159人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Flutter 随机颜色 颜色处理工具

    > 在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就

    相关 让Python随机生成颜色

    颜色的表示方式有三种:RGB、十六进制和颜色名 Python支持的颜色有:十六进制和颜色名 十六进制颜色值是和RGB有着关联的,比如这个颜色 ██████████ 纯红色