1. 工作中, 有时会用到给人生成默认头像的情况, 这里参考网上的方法写了一个类似钉钉头像的生成代码, 以便后续使用, 先记录一下
    1. public static void main(String[] args) throws IOException {
    2. // 图片宽
    3. int width = 100;
    4. // 图片高
    5. int height = 100;
    6. // 得到图片缓冲区 // INT精确度达到一定,RGB三原色,高度70,宽度150
    7. BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    8. // 得到它的绘制环境(这张图片的笔)
    9. Graphics2D g2 = (Graphics2D) bi.getGraphics();
    10. // 设置背景颜色
    11. g2.setColor(new Color(0, 137, 255));
    12. // 填充整张图片(其实就是设置背景颜色)
    13. g2.fillRect(0, 0, width, height);
    14. // 设置字体颜色
    15. g2.setColor(Color.white);
    16. // 边框加粗
    17. g2.setStroke(new BasicStroke(2.0f));
    18. // 画边框就是黑边框
    19. g2.drawRect(1, 1, width - 2, height - 2);
    20. // 设置标题的字体,字号,大小
    21. Font titleFont = new Font("宋体", Font.BOLD, 30);
    22. g2.setFont(titleFont);
    23. // 抗锯齿
    24. g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    25. // 计算文字长度,计算居中的X点坐标
    26. FontMetrics fm = g2.getFontMetrics(titleFont);
    27. int titleWidth = fm.stringWidth("测试");
    28. // 感觉不居中,向左移动35个单位
    29. int titleWidthX = (width - titleWidth) / 2;
    30. g2.drawString("测试", titleWidthX, 58);
    31. // 释放对象
    32. g2.dispose();
    33. // 保存图片 JPEG表示保存格式
    34. ImageIO.write(bi, "JPEG", new FileOutputStream("D:/a.jpg"));
    35. }

    生成效果如下

    image.png

    效果还是很不错的