最近做的java项目有涉及到生成图片的模块,考虑到资料多为英文,需要在stackoverflow和oracle API文档寻找。
特此记录,也许能帮到一样寻找api的人 。代码从项目中做了小修改,可以直接使用 Version: java 1.8 Editor: IntelliJ
步骤1 :初始化image和对应painter
//在最后保存图片前,建议用TYPE_INT_ARGB
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_ARGB);
public Graphics2D initPainter(BufferedImage image){
Graphics2D g2Painter = image.createGraphics();
//给painter带上反锯齿属性,否则生成图片会像被蚂蚁啃过
painter.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
painter.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
return g2Painter;
}
步骤2 :画用户头像 要求圆形带边框
int x = 40, y = 40, border = 1;
BufferImage avatarImage = new BufferedImage(x, y, BufferedImage.TYPE_INT_ARGB);
Graphics2D avatarPainter = initPainter(avatarImage); //如步骤1
//切割头像区域为圆形
Ellipse2D.Double shape = new Ellipse2D.Double(border, border,
x - border * 2, y - border * 2);
avatarPainter.setClip(shape);
String imageUrl = ""; //要导入头像的url,自行替换
String backupUrl = ""; //默认头像url,用于找不到imageUrl时
Buffer