java base64转图片
- 工作小总结
- 时间:2023-03-05 13:56
- 3639人已阅读
简介
在工作中,有时候,前端会把图片base64之后发给后端,这个时候,后端就需要把这个base64转成图片。这里就写个工具类:方法:传递文件地址和base64位的编码代码如下图 /** * base64转为图片 *&nb
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
在工作中,有时候,前端会把图片base64之后发给后端,这个时候,后端就需要把这个base64转成图片。这里就写个工具类:
方法:传递文件地址和base64位的编码
代码如下图
/** * base64转为图片 * @param path * 文件路径:到文件夹即可,代码里会在文件夹里生成对应的jpg文件 * @param base64 * @return */ public static String base64ToJpg(String path,String base64){ // 判断文件路径是否存在 File filePath = new File(path); if (!filePath.exists()){ filePath.mkdirs(); } // 创建文件 String jpgFile = path + "\\" + UUID.randomUUID() + ".jpg"; File file = new File(jpgFile); boolean jpgFileExist = false; try { jpgFileExist = file.createNewFile(); log.info("jpg文件创建成功"); } catch (IOException e) { log.info("jpg文件创建失败"); e.printStackTrace(); } if (jpgFileExist){ // 解密 Base64.Decoder decoder = Base64.getDecoder(); // 去掉base64前缀 data:image/jpeg;base64, base64 = base64.substring(base64.indexOf(",", 1) + 1, base64.length()); byte[] b = decoder.decode(base64); // 处理数据 for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { b[i] += 256; } } // 保存图片 try { FileOutputStream out = new FileOutputStream(jpgFile); out.write(b); out.flush(); out.close(); // 写入成功返回文件路径 return jpgFile; } catch (FileNotFoundException e) { log.info("文件未找到"); e.printStackTrace(); } catch (IOException e) { log.info("写入失败"); e.printStackTrace(); } } return "文件不存在"; }
代码中注释比较详细。凯哥就不重复说了。再来看看测试的
测试方法:
public static void main(String[] args) { Map<String, Object> imageCode = getImageCode(); log.info(imageCode.get("imageCodeKey").toString()); log.info(imageCode.get("imageCodeBase64").toString()); String base64 = imageCode.get("imageCodeBase64").toString(); String filePath = "C:\\Users\\Asus\\Desktop\\temp"; String res = base64ToJpg(filePath, base64); log.info(res); }
运行结果: