https://www.cnblogs.com/ywlx/p/4544179.html

这里使用的jar包是commons-codec-1.10.jar;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.codec.binary.Base64;

/**
* 将图片转换为Base64<br>
* 将base64编码字符串解码成img图片
* @创建时间 2015-06-01 15:50
*
*/
public class Img2Base64Util {

public static void main(String[] args) {
String imgFile = "d:\\3.jpg";//待处理的图片
String imgbese=getImgStr(imgFile);
System.out.println(imgbese.length());
System.out.println(imgbese);
String imgFilePath = "d:\\332.jpg";//新生成的图片
generateImage(imgbese,imgFilePath);
}
/**
* 将图片转换成Base64编码
* @param imgFile 待处理图片
* @return
*/
public static String getImgStr(String imgFile){
//将图片文件转化为字节数组字符串,并对其进行Base64编码处理

InputStream in = null;
byte[] data = null;
//读取图片字节数组
try
{
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
return new String(Base64.encodeBase64(data));
}

/**
* 对字节数组字符串进行Base64解码并生成图片
* @param imgStr 图片数据
* @param imgFilePath 保存图片全路径地址
* @return
*/
public static boolean generateImage(String imgStr,String imgFilePath){
//
if (imgStr == null) //图像数据为空
return false;

try
{
//Base64解码
byte[] b = Base64.decodeBase64(imgStr);
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{//调整异常数据
b[i]+=256;
}
}
//生成jpeg图片

OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
}


public static void main(String[] args){
try {
base64UpLoad("data:image/jpeg;base64,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");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

//将前端所有的data:image/jpeg;base64,/9jxxxxxxxx解析
public static void base64UpLoad(String base64Data) throws Exception{
String dataPrix = "";
String data = "";

if(base64Data == null || "".equals(base64Data)){
throw new Exception("上传失败,上传图片数据为空");
}else{
String [] d = base64Data.split("base64,");
if(d != null && d.length == 2){
dataPrix = d[0];
data = d[1];
}else{
throw new Exception("上传失败,数据不合法");
}
}
// FileDtl fileDtl= new FileDtl();
String suffix = "";
if("data:image/jpeg;".equalsIgnoreCase(dataPrix)){//data:image/jpeg;base64,base64编码的jpeg图片数据
suffix = ".jpg";
} else if("data:image/x-icon;".equalsIgnoreCase(dataPrix)){//data:image/x-icon;base64,base64编码的icon图片数据
suffix = ".ico";
} else if("data:image/gif;".equalsIgnoreCase(dataPrix)){//data:image/gif;base64,base64编码的gif图片数据
suffix = ".gif";
} else if("data:image/png;".equalsIgnoreCase(dataPrix)){//data:image/png;base64,base64编码的png图片数据
suffix = ".png";
}else{
throw new Exception("上传图片格式不合法");
}
String tempFileName = DateUtil.timeStampMS() + suffix;
try {
byte[] bs = Base64.decodeBase64(data);
//处理数据
for (int i = 0; i < bs.length; ++i) {
if (bs[i] < 0) {
bs[i] += 256;
}
}
OutputStream out = new FileOutputStream("d:\\"+tempFileName);
out.write(bs);
out.flush();
out.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// fileDtl.setFileName(tempFileName);
// // byte[] bs = Base64Utils.decodeFromString(data);
// BASE64Decoder decoder = new BASE64Decoder();
// byte[] bs = decoder.decodeBuffer(data);
// //处理数据
// for (int i = 0; i < bs.length; ++i) {
// if (bs[i] < 0) {
// bs[i] += 256;
// }
// }
// int size=bs.length;
// fileDtl.setFileSize((long)size) ;
// InputStream is = new ByteArrayInputStream(bs);
// fileDtl.setIs(is);
// return fileDtl;
}

转载于:https://www.cnblogs.com/wth21-1314/p/10022174.html

JAVA 将图片转换为Base64编码相关推荐

  1. java 图片转成base64编码_java语言中如何将一个图片转换为base64编码的数据呢?

    摘要: 下文讲述java语言中将图片转换为base64编码的方法分享,如下所示: 例: /* file为图片文件对象 filePath为转换后base64的存储位置 */ public static ...

  2. 图片转换为base64编码后,实现无图片展示图片

    第一部分,将图片转换为base64编码输出为txt文本 第二部分,将转换出来的base64编码赋值给b64_code,通过base64编码转换为图片,打开,然后删除 base64编码过长,同时输入过多 ...

  3. Java实现图片与Base64编码互转

    2019独角兽企业重金招聘Python工程师标准>>> import java.io.FileInputStream; import java.io.FileOutputStream ...

  4. python将图片导出数据库_python 将图片转换为base64编码转储进数据库

    # _*_ coding: utf-8 _*_ #中间件:拓展工具遍历文件夹,对文件夹图片进行base64编码,写入数据库,并且读取查找方法 __author__ = 'wf15038' __date ...

  5. 将图片转换为base64编码

    1.base64编码简介 Base64是一种可逆的编码方式,简单来讲就是一种将64个Ascii字符来表示成二进制数据的方法.主要用于将不可打印的字符转换成可打印字符,或者简单的说将二进制数据编码成As ...

  6. 微信小程序把图片转换为Base64编码

    1.FileSystemManager().readFile();此方法是异步的,如果要获取多个BASE64码,一定获取不到. //FileSystemManager().readFile() var ...

  7. java svgbase64转byte_java 图片进行base64 编码解码

    java 图片进行base64 编码解码 刘振兴 代码分享 2017年06月07日 10555 2条评论 import sun.misc.BASE64Decoder; import sun.misc. ...

  8. 图片从base64编码转换为jpg文件

    1.使用网站 注意在base64编码前加上:data:image/png;base64, http://tool.chinaz.com/tools/imgtobase​​​​​​​ 2.转换的代码 p ...

  9. Java处理富文本编辑器的图片转为base64编码

    一.需求(场景) 后台(内网)通过富文本编辑器编辑的图文信息,需要在移动端(外网)展示,需要将内容中的图片的src的路径替换成base64编码的传递到前台. 二.思路 1.获取内容中的<img& ...

最新文章

  1. 搜索引擎提交工具_钦州SEO优化_SEO工具常用的有哪些大盘点,做SEO优化不再累...
  2. 让你的网站在IE8的兼容模式下运行
  3. 稀疏矩阵三元组 严蔚敏_Sparse稀疏矩阵主要存储格式总结
  4. PyCairo 中的基本绘图
  5. xcode 怎么调用midi开发录音_如何组建个人录音工作室
  6. P4592 [TJOI2018]异或 (可持久化Trie)
  7. Js中的for in
  8. aix解锁oracle用户,aix用户被锁定的解决办法
  9. Pytest之pytest-assume同用例多断言,断言1失败会执行后续代码及断言2
  10. Javascript 中 JSON 与对象 的相互转换
  11. Datagard產生gap
  12. 【论文】本周论文推荐(11.23-11.29)
  13. 第一次scrum冲刺!
  14. 在macOS Big Sur上如何重置蓝牙?
  15. oracle mysql认证考试流程_oraclemysql认证考试流程
  16. 在 MQL5 中使用 WININET。第二部分:POST 请求和文件
  17. 安装IBM HTTP SERVER
  18. AC A2C A3C
  19. Python数据分析第四课:数据的处理(数据合并、数据筛选、数据排序)
  20. 国科大学习资料--人工智能原理与算法-第十三次作业解析(学长整理)

热门文章

  1. redis之adlist.c
  2. linux下挂载和卸载的命令的用法:mount 、umount
  3. Linux系统中的函数
  4. 常考数据结构与算法:最大正方形
  5. JRebel for IntelliJ 热部署方法
  6. Linux下查看进程IO工具iopp
  7. CentOS6.9中搭建FTP服务器
  8. DataGrid方法标注
  9. strace使用详解(未研究)
  10. 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!