图片转Base64
直接上代码
private String getImageBase64(MultipartFile multipartFile) {
try {
BASE64Encoder encoder = new BASE64Encoder();
// 通过base64来转化图片
String imageData= encoder.encode(multipartFile.getBytes());
imageData= "data:image/jpg;base64," + data;
return imageData;
} catch (IOException e) {
logger.warn(e.getMessage());
}
return null;
}
Base64转回图片
//删除声明,保留编码
if(imageData.indexOf("data:image/jpg;base64,")!=-1) {
imageData = imageData.substring(imageData.indexOf("data:image/jpg;base64,") + 22);
}
//base64转换成字节
b = decoder.decodeBuffer(imageData);
for (int i1 = 0; i1 < b.length; ++i1) {
if (b[i1] < 0) {// 调整异常数据
b[i1] += 256;
}
}
//创建新的文件,并设置成输出流,在将字节写入,最后关闭流
String fileName = "C:/img/newImage.jpg";
//判断文件夹是否存在,不存在就新建
java.io.File directoryFile=new java.io.File("C:/img");
if(!directoryFile.isDirectory() && !directoryFile.exists()){
directoryFile.mkdirs();
}
OutputStream out = null;
try{
out = new FileOutputStream(fileName);
out.write(b);
}catch (Exception e){
e.printStackTrace();
}finally {
if(out==null) continue;
out.flush();
out.close();
}