java 图片与base64相互转化的示例

 更新时间:2020年10月24日 08:57:27   作者:Marydon  
这篇文章主要介绍了java 图片与base64相互转化的示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下

需要导入:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
 * 图片转base64字符串
 * @param path
 * @return
 */
public static String PictoBase64(String path) {
  InputStream in = null;
  byte[] data = null;
  // 读取图片字节数组
  try {
    in = new FileInputStream(path);
    data = new byte[in.available()];
    in.read(data);
    in.close();
  } catch (IOException e) {
    e.printStackTrace();
  }
  // 对字节数组Base64编码
  BASE64Encoder encoder = new BASE64Encoder();
  return encoder.encode(data);// 返回Base64编码过的字节数组字符串
}

/**
 * base64写图片
 * @param imgStr
 * @return
 */
public static boolean Base64toPic(String imgStr) {

  // 对字节数组字符串进行Base64解码并生成图片
  if (imgStr == null) // 图像数据为空
    return false;
  BASE64Decoder decoder = new BASE64Decoder();
  try {
    // Base64解码
    byte[] b = decoder.decodeBuffer(imgStr);
    for (int i = 0; i < b.length; ++i) {
      if (b[i] < 0) {// 调整异常数据
        b[i] += 256;
      }
    }
    String imgName = UUID.randomUUID().toString().replace("-", "");
    String imgType = ".png";
    // 生成png图片
    String imgFilePath = "C:/Users/Administrator/Desktop/" + imgName + imgType;// 新生成的图片
    OutputStream out = new FileOutputStream(imgFilePath);
    out.write(b);
    out.flush();
    out.close();
    return true;
  } catch (Exception e) {
    return false;
  }
}

以上就是java 图片与base64相互转化的示例的详细内容,更多关于java 图片与base64相互转化的资料请关注脚本之家其它相关文章!

相关文章

  • Spring中的@PostConstruct注解使用方法解析

    Spring中的@PostConstruct注解使用方法解析

    这篇文章主要介绍了Spring中的@PostConstruct注解使用方法解析,@PostConstruct注解是用来处理在@Autowired注入属性后init()方法之前,对一些零散的属性进行赋值的注解,需要的朋友可以参考下
    2023-11-11
  • Java Mybatis的初始化之Mapper.xml映射文件的详解

    Java Mybatis的初始化之Mapper.xml映射文件的详解

    这篇文章主要介绍了Java Mybatis的初始化之Mapper.xml映射文件的详解,解析完全局配置文件后接下来就是解析Mapper文件了,它是通过XMLMapperBuilder来进行解析的
    2022-08-08
  • Java实现字节数B转化为KB、MB、GB的方法示例【测试可用】

    Java实现字节数B转化为KB、MB、GB的方法示例【测试可用】

    这篇文章主要介绍了Java实现字节数B转化为KB、MB、GB的方法,结合实例形式分析了java字节数的转换运算相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • spring security如何扩展自定义登录

    spring security如何扩展自定义登录

    本文详细介绍了Spring Security的认证原理和具体实现,认证原理基于过滤器链,通过验证用户凭证和构建认证对象来保护应用程序资源,实现自定义认证功能的步骤包括创建自定义认证提供程序、实现UserDetailsService接口以及在配置类中进行相应的配置
    2024-11-11
  • Java HashMap的工作原理

    Java HashMap的工作原理

    这篇文章主要介绍了Java HashMap的工作原理的相关资料,需要的朋友可以参考下
    2016-03-03
  • java不使用第三变量交换两个变量的值

    java不使用第三变量交换两个变量的值

    这篇文章主要介绍了java不使用第三变量交换两个变量的值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Maven项目分析剔除无用jar引用的方法步骤

    Maven项目分析剔除无用jar引用的方法步骤

    这篇文章主要介绍了Maven项目分析剔除无用jar引用的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • System 类 和 Runtime 类的常用用法介绍

    System 类 和 Runtime 类的常用用法介绍

    这篇文章主要介绍了System 类 和 Runtime 类的常用用法,有需要的朋友可以参考一下
    2014-01-01
  • java代理 jdk动态代理应用案列

    java代理 jdk动态代理应用案列

    java代理有jdk动态代理、cglib代理,这里只说下jdk动态代理,jdk动态代理主要使用的是java反射机制,需要了解的朋友可以参考下
    2012-11-11
  • Spring Boot开启的2种方式详解

    Spring Boot开启的2种方式详解

    这篇文章主要介绍了Spring Boot开启的2种方式详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05

最新评论