Base64圖片轉換為圖片的方式
阿新 • • 發佈:2018-12-30
將base64轉換為圖片以及圖片轉換為base64碼的工具類
public class base64Change {
/**
* @param imgStr base64編碼字串
* @param path 圖片路徑-具體到檔案
*/
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;
}
//圖片轉化成base64字串
public static String GetImageStr()
{//將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理
String imgFile = "F:\\tupian\\a.jpg";//待處理的圖片
// 地址也有寫成"F:/deskBG/86619-107.jpg"形式的
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();
}
//對位元組陣列Base64編碼
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);//返回Base64編碼過的位元組陣列字串
}
}
好了,重點來了,很多人會在這裡出錯!
public String ChangeBase64(String base64data,Integer certifiedtype,Integer userid,HttpServletRequest request) {
//這一步很重要很重要很重要,因為base64的資料會有data:base64img,
//所有需要將這個擷取掉之後轉化,不然就是空白的打不開的檔案
String base64img = certifieddata.substring(base64data.indexOf(",")+1);
FileUploadUtils.generateImage(base64img,"F:/deskBG/86619-107.jpg");
//return null;是為了測試的,實際需求自己定
return null;
}