前一段時間,在做攝像頭拍照上傳,攝像頭拍的照片爲base64編碼格式的字符串,需要上傳至項目中,則需要使用到將base64編碼字符串轉換爲圖片
1、將base64編碼字符串轉換爲圖片的代碼如下 ImageUtil.java:
package util;
import javax.servlet.http.HttpServletRequest;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Base64;
import java.util.UUID;
public class ImageUtil {
/**
* @Description: 將base64編碼字符串轉換爲圖片
* @Author:
* @CreateTime:
* @param file base64編碼字符串
* @param path 圖片路徑-具體到文件
* @return
*/
public static String generateImage(String file, String path, HttpServletRequest request) {
// 解密
try {
// 項目絕對路徑
String savePath = request.getSession().getServletContext().getRealPath("upload");
// 圖片分類路徑+圖片名+圖片後綴
String imgClassPath = path.concat(UUID.randomUUID().toString()).concat(".jpg");
// 解密
Base64.Decoder decoder = Base64.getDecoder();
// 去掉base64前綴 data:image/jpeg;base64,
file = file.substring(file.indexOf(",", 1) + 1, file.length());
byte[] b = decoder.decode(file);
// 處理數據
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
// 保存圖片
OutputStream out = new FileOutputStream(savePath.concat(imgClassPath));
out.write(b);
out.flush();
out.close();
// 返回圖片的相對路徑 = 圖片分類路徑+圖片名+圖片後綴
return imgClassPath;
} catch (IOException e) {
return null;
}
}
}
如您在閱讀中發現不足,歡迎留言!!!