生成图片代码 其中一种webp格式无法生成
需引入的maven包
<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-tiff</artifactId>
<version>3.3.2</version>
</dependency>
import sun.font.FontDesignMetrics;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
/**
* @author: cosmoswalker
* @createDateTime: 2021-11-16 10:52:58
* @program: test
* @description:
*/
public class CreateImages {
public static void main(String[] args) {
create(BufferedImage.TYPE_INT_RGB, "PNG", "测试数据54545454545454545", "test");
create(BufferedImage.TYPE_INT_RGB, "JPEG", "测试数据54545454545454545", "test");
create(BufferedImage.TYPE_INT_RGB, "GIF", "测试数据54545454545454545", "test");
create(BufferedImage.TYPE_INT_RGB, "tiff", "测试数据54545454545454545", "test");
create(BufferedImage.TYPE_BYTE_BINARY, "WBMP", "测试数据54545454545454545", "test");
//暂时无法生成
//create(BufferedImage.TYPE_INT_RGB, "webp", "测试数据54545454545454545", "test");
}
public static void create(int type, String formatName, String content, String pictureName) {
String property = System.getProperty("user.dir") + "/src/main/resources/img/";
File file = new File(property);
if (!file.exists()) {
file.mkdirs();
}
try {
//字体字号
int fontSize = 15;
//文字字体
String fontFamily = "雅黑";
//字体字形
int style = Font.ROMAN_BASELINE;
//获取字体在画布中的大小
Font f = new Font(fontFamily, style, fontSize);
FontMetrics fm = FontDesignMetrics.getMetrics(f);
int fontWidth = fm.stringWidth(content);
int fontHeight = fm.getHeight();
//初始化画布大小,根据字体像素大小进行调整
int width = fontWidth + (fontWidth >> 1);
int height = fontHeight + (fontHeight >> 1);
//初始化图片的大小和背景色
BufferedImage bi = new BufferedImage(width, height, type);
Graphics2D g2 = bi.createGraphics();
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, width, height);
//在画布上写入字体
Font font = new Font(fontFamily, style, fontSize);
g2.setFont(font);
//字体颜色
g2.setPaint(Color.black);
g2.drawString(content, (width - fontWidth) >> 1, (height >> 1) + (fontHeight >> 2));
g2.dispose();
//输出图片
ImageIO.write(bi, formatName, new File(property + pictureName + "." + formatName));
} catch (IOException ie) {
ie.printStackTrace();
}
}
}