Base64Image.java 4.26 KB
package cn.com.polysoft.utils;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import java.io.*;

public class Base64Image {
  public static void main(String[] args) {
    // 测试从Base64编码转换为图片文件
    String strImg = "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";

    GenerateImage(strImg, "D:\\wangyc.jpg");

    // 测试从图片文件转换为Base64编码
//    System.out.println(GetImageStr("D:\\微信图片_20190318151320.jpg"));
  }

  public static String GetImageStr(String imgFilePath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
    byte[] data = null;

    // 读取图片字节数组
    try {
      InputStream in = new FileInputStream(imgFilePath);
      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编码过的字节数组字符串
  }

  public static boolean GenerateImage(String imgStr, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片
    if (imgStr == null) // 图像数据为空
      return false;
    BASE64Decoder decoder = new BASE64Decoder();
    try {
      // Base64解码
      byte[] bytes = decoder.decodeBuffer(imgStr);
      for (int i = 0; i < bytes.length; ++i) {
        if (bytes[i] < 0) {// 调整异常数据
          bytes[i] += 256;
        }
      }
      // 生成jpeg图片
      OutputStream out = new FileOutputStream(imgFilePath);
      out.write(bytes);
      out.flush();
      out.close();
      return true;
    } catch (Exception e) {
      return false;
    }
  }
}