java实现图片转base64字符串 java实现base64字符串转图片

作者:漂流的老妖怪 时间:2023-07-19 10:42:44 

java 图片转base64字符串、base64字符串转图片,具体内容如下

1. 图片转base64字符串:


/**
 * base64编码字符串转换为图片
 * @param imgStr base64编码字符串
 * @param path 图片路径
 * @return
 */
public static boolean base64StrToImage(String imgStr, String path) {
 if (imgStr == null)
 return false;
 BASE64Decoder decoder = new BASE64Decoder();
 try {
  // 解密
  byte[] b = decoder.decodeBuffer(imgStr);
  // 处理数据
  for (int i = 0; i < b.length; ++i) {
   if (b[i] < 0) {
    b[i] += 256;
   }
  }
  //文件夹不存在则自动创建
  File tempFile = new File(path);
  if (!tempFile.getParentFile().exists()) {
   tempFile.getParentFile().mkdirs();
  }
  OutputStream out = new FileOutputStream(tempFile);
  out.write(b);
  out.flush();
  out.close();
  return true;
 } catch (Exception e) {
  return false;
 }
}

2. base64字符串转图片:


/**
 * 图片转base64字符串
 * @param imgFile 图片路径
 * @return
 */
public static String imageToBase64Str(String imgFile) {
 InputStream inputStream = null;
 byte[] data = null;
 try {
  inputStream = new FileInputStream(imgFile);
  data = new byte[inputStream.available()];
  inputStream.read(data);
  inputStream.close();
 } catch (IOException e) {
  e.printStackTrace();
 }
 // 加密
 BASE64Encoder encoder = new BASE64Encoder();
 return encoder.encode(data);
}

3. 测试:


public static void main(String[] args) {
 String base64Str = imageToBase64Str("D:/pic/001.jpg");
 System.out.println(base64Str);

boolean b = base64StrToImage(base64Str, "D:/pic/temp/002.jpg");
 System.out.println(b);
}

效果图:

java实现图片转base64字符串 java实现base64字符串转图片 java实现图片转base64字符串 java实现base64字符串转图片 java实现图片转base64字符串 java实现base64字符串转图片java实现图片转base64字符串 java实现base64字符串转图片

来源:http://www.cnblogs.com/hooly/p/8330433.html

标签:java,图片,base64,字符串
0
投稿

猜你喜欢

  • Java精品项目瑞吉外卖之员工信息管理篇

    2023-07-29 07:43:36
  • Java数据结构之链表、栈、队列、树的实现方法示例

    2021-10-07 10:40:29
  • C#实现剪切板功能

    2023-01-16 12:26:48
  • 十分钟速懂java知识点 System类

    2022-11-25 04:19:26
  • java static块和构造函数的实例详解

    2021-10-04 07:30:17
  • spring mvc中注解@ModelAttribute的妙用分享

    2022-09-15 13:53:25
  • 布隆过滤器(Bloom Filter)的Java实现方法

    2022-09-14 18:06:06
  • Android自定义控件之刻度尺控件

    2022-05-14 07:37:13
  • 死磕 java同步系列之synchronized解析

    2023-09-27 10:07:43
  • C#实现两个时间相减的方法

    2022-12-21 03:08:29
  • Android开发RecyclerView实现折线图效果

    2022-08-27 12:59:34
  • 详解Java中方法重写和方法重载的6个区别

    2023-11-28 13:42:18
  • C# 10个常用特性汇总

    2023-03-22 01:04:13
  • springboot如何读取配置文件到静态工具类

    2023-11-28 04:44:54
  • idea 设置鼠标悬停(放上)弹出注释的方法

    2022-03-19 21:10:52
  • SpringBoot如何实现定时任务示例详解

    2023-10-11 23:24:42
  • Java设计模式之命令模式

    2022-06-17 22:49:07
  • 浅谈c#开发者应该了解的15个特性

    2022-03-02 17:14:32
  • 在C#和Java语言中for和foreach的区别详解

    2023-01-29 11:31:13
  • C#中Dictionary<TKey,TValue>排序方式的实现

    2021-07-13 10:59:10
  • asp之家 软件编程 m.aspxhome.com