• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
嘻哈•﹏•亻
博客园    首页    新随笔    联系   管理    订阅  订阅
图片相互转换base64

图片相互转换base64

实例在唐山考勤系统人员管理控制类。goAdd1方法。

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);
 }
posted on 2021-03-17 09:16  嘻哈•﹏•亻  阅读(129)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3