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