import org.apache.commons.lang3.ArrayUtils;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;
/**
* @Description: 图片Base64相互转换
* @Version: 1.0
*/
public class ImageBase64Utils {
/**
* 将图片转换成Base64编码
* @param imgFile 待处理图片
* @return
*/
public static String imageToBase64(String imgFile) {
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
byte[] data = null;
try(InputStream in = new FileInputStream(imgFile)){
data = new byte[in.available()];
in.read(data);
} catch (IOException e){
e.printStackTrace();
LoggerUtil.error(ImageBase64Utils.class, e.toString());
}
return new String(Base64.getEncoder().encode(data));
}
/**
* 对字节数组字符串进行Base64解码并生成图片
* @param imgStr 图片数据
* @return
*/
public static byte[] base64ToImage(String imgStr) {
try {
// Base64解码
byte[] b = Base64.getDecoder().decode(imgStr);
for (int i = 0; i < b.length; ++i) {
// 调整异常数据
if (b[i] < 0) {
b[i] += 256;
}
}
return b;
} catch (Exception e) {
e.printStackTrace();
LoggerUtil.error(ImageBase64Utils.class, e.toString());
return ArrayUtils.EMPTY_BYTE_ARRAY;
}
}
}
Java学习笔记:图片与Base64编码相互转换
猜你喜欢
转载自blog.csdn.net/yaomingyang/article/details/103463255
今日推荐
周排行