Base64 java图片工具类
import org.springframework.util.Assert; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.Base64; /** * @description: 图片工具类 * @author: Mr.Fang **/ public class ImageUtils { /** * description: 图片转 base64 * create by: Mr.Fang * * @param path 文件路径 * @return: java.lang.String */ public static String imageToBase64(String path) throws IOException { File file = new File(path); Assert.isTrue(file.exists(), "文件不存在"); String name = file.getName(); String formatName = name.substring(name.indexOf(".") + 1); BufferedImage read = ImageIO.read(file); // 创建字节流 ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); // 将图片写入字节流 ImageIO.write(read, formatName, byteStream); // 字节流转字节数组 byte[] bytes = byteStream.toByteArray(); // base64 编码 String base64 = Base64.getEncoder().encodeToString(bytes).trim(); // base64 图片 return String.format("data:image/%s;base64,%s", formatName, base64); } /** * description: 图片转 base64 * create by: Mr.Fang * * @param inputStream 输入流 * @param formatName 文件格式 * @return: java.lang.String */ public static String imageToBase64(InputStream inputStream, String formatName) throws IOException { BufferedImage read = ImageIO.read(inputStream); // 创建字节流 ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); // 将图片写入字节流 ImageIO.write(read, formatName, byteStream); // 字节流转字节数组 byte[] bytes = byteStream.toByteArray(); // base64 编码 String base64 = Base64.getEncoder().encodeToString(bytes).trim(); // base64 图片 return String.format("data:image/%s;base64,%s", formatName, base64); } /** * description: base64 转图片 * create by: Mr.Fang * * @param base64 * @param path 文件输出路径 * @return: java.lang.String */ public static Boolean base64ToImage(String base64, String path) { String[] result = base64.split(","); String base64Head = result[0]; String bytesString = result[1]; String formatName = base64Head.substring(base64Head.indexOf("/") + 1, base64Head.indexOf(";")); // 转字节数组 byte[] decode = Base64.getDecoder().decode(bytesString.getBytes(StandardCharsets.UTF_8)); // 创建字节流 ByteArrayInputStream inputStream = new ByteArrayInputStream(decode); BufferedImage read = null; try { read = ImageIO.read(inputStream); return ImageIO.write(read, formatName, new File(String.format("%s.%s", path, formatName))); } catch (IOException e) { e.printStackTrace(); return false; } } }
哇!又赚了一天人民币
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库