关注互联网应用及运维技术的个人博客

java base64 图片相互转化

base64转图片

/**
 * @Description: 将base64编码字符串转换为图片
 * @Author: 
 * @CreateTime: 
 * @param imgStr base64编码字符串
 * @param path 图片路径-具体到文件
 * @return
*/
public static boolean generateImage(String base64, String path) {
  if (base64 == null)
    return false;
  //必须去掉base64的头部,不然转换失败
  base64 = base64.replaceAll("data:\\w+/\\w+;base64,","");
  BASE64Decoder decoder = new BASE64Decoder();
  try {
    // 解密
    byte[] b = decoder.decodeBuffer(base64);
    // 处理数据
    for (int i = 0; i < b.length; ++i) {
      if (b[i] < 0) {
        b[i] += 256;
      }
    }
    OutputStream out = new FileOutputStream(path);
    out.write(b);
    out.flush();
    out.close();
    return true;
  } catch (Exception e) {
    return false;
  }
}

图片转base64

/**
 * @Description: 根据图片地址转换为base64编码字符串
 * @Author: 
 * @CreateTime: 
 * @return
 */
public static String getImageStr(String path) {
    InputStream inputStream = null;
    byte[] data = null;
    try {
        inputStream = new FileInputStream(path);
        data = new byte[inputStream.available()];
        inputStream.read(data);
        inputStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    // 加密
    BASE64Encoder encoder = new BASE64Encoder();
    return encoder.encode(data);
}

注意

“data:image/jpeg;base64,” 解码之前这个得去掉。

赞(0)
未经允许不得转载:飞天狒狒 » java base64 图片相互转化

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址