关于JAVA11中图片与BASE64相互转换的实现

作者:一个不想学习的程序员 时间:2022-12-06 06:44:11 

由于jdk 1.8 之后sun.misc 包下的 BASE64Decode的依赖 被移除

我们需要在自己的项目中引入EncodeUtils 工具类 帮助我们进行转换


public class EncodeUtils {

private static final String DEFAULT_URL_ENCODING = "UTF-8";

/**
 * Base64编码.
 */
public static String base64Encode(byte[] input) {
    return new String(Base64.encodeBase64(input));
}

/**
* Base64解码.
*/
public static byte[] base64Decode(String input) {
 return Base64.decodeBase64(input);
}
}

在项目中测试

直接调用工具类中的方法即可


/***
    * <p>
    * description: base64字符串转图片
    * <p>
    * @see
    */
   static void base64StringToImage(String base64String) {
       try {
           byte[] bytes1 = EncodeUtils.base64Decode(base64String);
           ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
           BufferedImage bi1 = ImageIO.read(bais);
           File f1 = new File("F:/wpcache/test/test.jpg");
           ImageIO.write(bi1, "jpg", f1);
       } catch (IOException e) {
           e.printStackTrace();
       }
   }

/***
    * <p>
    * description:图片转base64字符串:
    * <p>
    * @see
    */
   public static String getImgStr(String imgFile) {
       // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
       InputStream in = null;
       byte[] data = null;
       // 读取图片字节数组
       try {
           in = new FileInputStream(imgFile);
           data = new byte[in.available()];
           in.read(data);
           in.close();
       } catch (IOException e) {
           e.printStackTrace();
       }
       return EncodeUtils.base64Encode(data);
   }

在main方法中运行


public static void main(String[] args) {
       String base64Str = getImgStr("F:/wpcache/2.jpg");
       System.out.println(base64Str);
       base64StringToImage(base64Str);
   }

运行结果

图片转BASE64 效果图

关于JAVA11中图片与BASE64相互转换的实现

BASE64 转图片 效果图

(注:这个生成的图片路径就是自己在base64StringToImage 方法中的路径)

关于JAVA11中图片与BASE64相互转换的实现

来源:https://blog.csdn.net/XadminX/article/details/115858236

标签:JAVA11,图片,BASE64,转换
0
投稿

猜你喜欢

  • 浅谈C#中简单的异常引发与处理操作

    2022-03-10 04:54:49
  • java 获取对象中为null的字段实例代码

    2023-08-28 06:32:53
  • Android中GPS坐标转换为高德地图坐标详解

    2023-10-07 20:40:24
  • 逆波兰计算器(Java实现)

    2021-10-18 09:45:01
  • mybatis 集合嵌套查询和集合嵌套结果的区别说明

    2022-10-12 15:17:02
  • Android Button按钮的四种点击事件

    2021-12-16 04:02:41
  • Java线程的生命周期命名与获取代码实现

    2022-05-21 05:19:49
  • android WebView加载html5介绍

    2021-12-29 17:43:44
  • JS+Struts2多文件上传实例详解

    2022-02-18 21:08:02
  • 在Android开发中替换资源图片不起作用的解决方法

    2022-05-18 03:15:28
  • java 引用传递的三种类型小结

    2023-09-03 03:59:47
  • Java NIO实现聊天功能

    2022-06-12 08:31:31
  • C#统计字符串里中文汉字个数的方法

    2022-05-12 21:47:10
  • Spring中XML schema扩展机制的深入讲解

    2022-06-29 07:44:15
  • Windows编写jar启动脚本和关闭脚本的操作方法

    2021-05-28 04:36:58
  • Java实现简易学生管理系统

    2022-10-16 19:26:49
  • MyBatis源码浅析(一)开篇

    2022-09-28 03:28:24
  • C# winform实现右下角弹出窗口结果的方法

    2023-02-05 14:22:57
  • Android编程实现震动与振铃的方法详解

    2022-01-28 19:44:23
  • C#求n个数中最大值和最小值的方法

    2022-04-20 08:00:01
  • asp之家 软件编程 m.aspxhome.com