java将字符串保存为图片
因为最近接触到的需求是要将指定的字符串内容保存为图片,我知道肯定要用awt相关的东西,但是以前没有接触过awt,所以只能去网上学习相关的东西和找有关的资料,好在最后可以解决,直接上代码:
/**
* @Description 通用工具类
* @ClassName CommonUtil
* @Author yanchengzhi
* @date 2021.06.22 21:19
*/
public final class CommonUtil {
/*
* @description: 将字符串转换为BufferedImage对象
* @param: [strs]
* @return: java.awt.image.BufferedImage
* @author: yanchengzhi
* @date: 2021/6/22 21:20
*/
public static BufferedImage createImage(String[] strs) {
// 设置背景宽高
int width = 600, height = 400;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文对象
Graphics graphics = image.getGraphics();
// 填充
graphics.fillRect(0, 0, width, height);
// 设定字体大小及样式
graphics.setFont(new Font("宋体", Font.BOLD,34));
// 字体颜色
graphics.setColor(Color.BLUE);
for (int i = 0; i < strs.length; i++) {
// 描绘字符串
graphics.drawString(strs[i], 150, 70+ (i + 1) * 50);
}
graphics.dispose();
return image;
}
}
测试:
public class Test {
public static void main(String[] args) throws IOException {
String strs[] = new String[4];
strs[0] = "前尘往事断肠诗,";
strs[1] = "侬为君痴君不知。";
strs[2] = "莫道世间真意少,";
strs[3] = "自古人间多情痴。";
// 获取BufferedImage对象
BufferedImage image = CommonUtil.createImage(strs);
File file = new File("C:/Users/17605/Desktop");
String fileName = "无题.jpg";
File jpgFile = new File(file,fileName);
if(!jpgFile.exists()) {
jpgFile.createNewFile();
}
// 创建图片输出流对象,基于文件对象
ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(jpgFile);
// 写入
ImageIO.write(image,"jpg",imageOutputStream);
// 关闭流
imageOutputStream.close();
System.out.println("图片写入完成,请查看!");
}
}
运行这个main方法,控制台:
再看桌面:
生成了一个无题.jpg
的图片,查看图片:
图片内容是OK的,是给定字符串的内容,那么将指定String内容保存为图片就完成了。