Java中图片与Base64互相转换

    xiaoxiao2023-11-07  150

    java  图片与Base64  互转

    最近的项目中遇到了图片与Base64互转的问题,便记录了下来。

    总的来说 还是使用到了Base64Utils包。

    废话不多说了   上代码吧

     

     

     

    import org.apache.commons.lang3.StringUtils; import org.junit.Test; import org.springframework.util.Base64Utils; import java.io.*; import java.util.Date; /** * 图片 与 Base64 互相转换 * zian Y */ public class Base64Util { @Test public void demo(){ String imgBase64Str = Base64Util.ImageToBase64ByLocal("F:\\20190525150630.jpg"); System.out.println(imgBase64Str); boolean b = Base64Util.Base64ToImage(imgBase64Str,"F:\\test.jpg"); System.out.println(b); } /** * 本地图片转换成base64字符串 * @param imgFile 本地图片全路径 (注意:带文件名) * (将图片文件转化为字节数组字符串,并对其进行Base64编码处理) * @return */ public static String ImageToBase64ByLocal(String imgFile) { byte[] data = null; // 读取图片字节数组 try { InputStream in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 返回Base64编码过的字节数组字符串 return Base64Utils.encodeToString(data); } /** * base64字符串转换成图片 (对字节数组字符串进行Base64解码并生成图片) * @param imgStr base64字符串 * @param imgFilePath 指定图片存放路径 (注意:带文件名) * @return */ public static boolean Base64ToImage(String imgStr,String imgFilePath) { if (StringUtils.isEmpty(imgStr)) // 图像数据为空 return false; try { // Base64解码 byte[] b = Base64Utils.decodeFromString(imgStr); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 调整异常数据 b[i] += 256; } } OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } }

     

     

    亲测可用。

    最新回复(0)