直播平臺製作,base64圖片字串和file之間互相轉換

zhibo系統開發發表於2023-02-13

直播平臺製作,base64圖片字串和file之間互相轉換

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
 
import java.io.*;
 
public class Base64Img {
 
//圖片轉化成base64字串
 
public static String GetImageStr(File 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();
 
}
 
//對位元組陣列Base64編碼
 
BASE64Encoder encoder = new BASE64Encoder();
 
return encoder.encode(data);//返回Base64編碼過的位元組陣列字串
 
}
 
 
//base64字串轉化成圖片
public static File base64ToFile(String base64, String fileName) throws Exception {
if(base64.contains("data:image")){
base64 = base64.substring(base64.indexOf(",")+1);
}
base64 = base64.toString().replace("\r\n", "");
File file = null;
//建立檔案目錄
String filePath=Const.TEMP_PATH;
File  dir=new File(filePath);
if (!dir.exists() && !dir.isDirectory()) {
dir.mkdirs();
}
BufferedOutputStream bos = null;
java.io.FileOutputStream fos = null;
try {
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes =  decoder.decodeBuffer(base64);
 
file=new File(filePath+Const.F+fileName);
OutputStream out = new FileOutputStream(filePath+Const.F+fileName);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(bytes);
}finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return file;
}
 
}

以上就是 直播平臺製作,base64圖片字串和file之間互相轉換,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2934980/,如需轉載,請註明出處,否則將追究法律責任。

相關文章