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相互转化的资料请关注脚本之家其它相关文章!

相关文章

  • Java设计模式之备忘录模式

    Java设计模式之备忘录模式

    这篇文章介绍了Java设计模式之备忘录模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • java io文件操作从文件读取数据的六种方法

    java io文件操作从文件读取数据的六种方法

    这篇文章主要为大家介绍了java io操作总结从文件读取数据的六种方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • springboot+vue实现登录功能

    springboot+vue实现登录功能

    这篇文章主要为大家详细介绍了springboot+vue实现登录功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • JAVA加密算法- 非对称加密算法(DH,RSA)的详细介绍

    JAVA加密算法- 非对称加密算法(DH,RSA)的详细介绍

    这篇文章主要介绍了JAVA加密算法- 非对称加密算法(DH,RSA),详细介绍了DH,RSA的用法和示例,需要的朋友可以了解一下。
    2016-11-11
  • 详解elasticsearch之metric聚合实现示例

    详解elasticsearch之metric聚合实现示例

    这篇文章主要为大家介绍了elasticsearch之metric聚合实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Elasticsearch term 查询之精确值搜索功能实现

    Elasticsearch term 查询之精确值搜索功能实现

    term查询是Elasticsearch中用于精确值搜索的一种基本方式,通过了解 term 查询的工作原理和使用方法,你可以更好地利用 Elasticsearch 进行结构化数据的搜索和分析,本文将详细介绍 term 查询的工作原理、使用场景以及如何在 Elasticsearch 中应用它,感兴趣的朋友一起看看吧
    2024-06-06
  • java音乐播放器实现代码

    java音乐播放器实现代码

    这篇文章主要介绍了java音乐播放器的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 详解Java语言中的抽象类与继承

    详解Java语言中的抽象类与继承

    这篇文章主要为大家详细介绍了Java语言中的抽象类与继承的相关资料,文中的示例代码讲解详细,对我们学习Java有一定的帮助,感兴趣的小伙伴快跟随小编一起了解一下
    2022-10-10
  • idea关闭vim编辑模式的操作

    idea关闭vim编辑模式的操作

    这篇文章主要介绍了idea关闭vim编辑模式的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java时间复杂度、空间复杂度的深入详解

    Java时间复杂度、空间复杂度的深入详解

    对于一个算法,其时间复杂度和空间复杂度往往是相互影响的,当追求一个较好的时间复杂度时,可能会使空间复杂度的性能变差,即可能导致占用较多的存储空间,这篇文章主要给大家介绍了关于Java时间复杂度、空间复杂度的相关资料,需要的朋友可以参考下
    2021-11-11

最新评论