全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java 处理图片与base64 编码的相互转换的示例

今天项目优化了一下上传头像的功能。采用 imagecropper 插件完成裁剪图片的效果。

这个插件裁剪完的图片都是 base64 加密的字符串,上传头像也就涉及到了如何把加密的字符串转换成图片的问题。

以下是代码:

/**
 * @Description: 将base64编码字符串转换为图片
 * @Author: 
 * @CreateTime: 
 * @param imgStr base64编码字符串
 * @param path 图片路径-具体到文件
 * @return
*/
public static boolean generateImage(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;
      }
    }
    OutputStream out = new FileOutputStream(path);
    out.write(b);
    out.flush();
    out.close();
    return true;
  } catch (Exception e) {
    return false;
  }
}

解密自然也有加密。以下是加密:

/**
 * @Description: 根据图片地址转换为base64编码字符串
 * @Author: 
 * @CreateTime: 
 * @return
 */
public static String getImageStr(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);
}

再贴一个测试的main函数

/**
 * 示例
 */
public static void main(String[] args) {
  String strImg = getImageStr("F:/86619-106.jpg");
  System.out.println(strImg);
  generateImage(strImg, "F:/86619-107.jpg");
}

好了,打完收工。

不过需要注意的是,一般插件返回的base64编码的字符串都是有一个前缀的。

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Java  # 图片转换base64编码  # 图片转换为base64编码  # Java实现图片与Base64编码互转  # Java实现BASE64编码和解码的方法  # java自定义实现base64编码转换  # java使用Base64编码实例  # Java处理图片实现base64编码转换  # JAVA实现Base64编码的三种方式  # 什么是Base64以及在Java中如何使用Base64编码  # 都是  # 转换为  # 的是  # 上传  # 也有  # 好了  # 也就  # 转换成  # 打完  # 需要注意  # 大家多多  # 有一个  # boolean  # generateImage  # String  # path  # return  # public  # static  # decodeBuffer 


相关文章: 详解jQuery停止动画——stop()方法的使用  javascript基本数据类型及类型检测常用方法小结  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  网站代码制作软件有哪些,如何生成自己网站的代码?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  活动邀请函制作网站有哪些,活动邀请函文案?  如何彻底卸载建站之星软件?  ,制作一个手机app网站要多少钱?  建站org新手必看:2024最新搭建流程与模板选择技巧  如何在云服务器上快速搭建个人网站?  微信小程序 五星评分(包括半颗星评分)实例代码  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  宝塔Windows建站如何避免显示默认IIS页面?  简单实现Android验证码  文字头像制作网站推荐软件,醒图能自动配文字吗?  建站之星logo尺寸如何设置最合适?  简单实现Android文件上传  php json中文编码为null的解决办法  如何高效配置IIS服务器搭建网站?  如何配置WinSCP新建站点的密钥验证步骤?  如何快速生成橙子建站落地页链接?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  建站之星安装后界面空白如何解决?  5种Android数据存储方式汇总  建站主机类型有哪些?如何正确选型  建站主机服务器选购指南:轻量应用与VPS配置解析  怎么将XML数据可视化 D3.js加载XML  如何快速使用云服务器搭建个人网站?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  如何在景安服务器上快速搭建个人网站?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  香港服务器部署网站为何提示未备案?  湖北网站制作公司有哪些,湖北清能集团官网?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  如何在香港免费服务器上快速搭建网站?  建站主机选购指南:核心配置优化与品牌推荐方案  如何用景安虚拟主机手机版绑定域名建站?  宝塔新建站点为何无法访问?如何排查?  七夕网站制作视频,七夕大促活动怎么报名?  广州商城建站系统开发成本与周期如何控制?  免费网站制作appp,免费制作app哪个平台好?  制作网站外包平台,自动化接单网站有哪些?  孙琪峥织梦建站教程如何优化数据库安全?  定制建站价位费用解析与套餐推荐全攻略  手机网站制作与建设方案,手机网站如何建设?  北京网站制作网页,网站升级改版需要多久? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。