你的專案需要將圖片轉Base64嗎? 這邊幫你整理好了,複製貼上就好囉!
Image to Base64
你需要先安裝一些套件,依底下步驟進行吧!
安裝Apache Commons IO套件
你可以使用 Maven pom.xml
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
當然你也可以自己上網站下載。commons-io
將圖片轉為Base64字串程式片段
程式片段,如下:
//將檔案轉為 byte array
byte[] fileContent = FileUtils.readFileToByteArray(new File(filePath));
//再將Byte array 轉成 base64格式,再轉為字串
String encodedString = Base64.getEncoder().encodeToString(fileContent);
將Base64字串轉為圖片程式片段
程式片段,如下:
//將Base64字串解碼後轉為byte array
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
//將byte array 寫入檔案中
FileUtils.writeByteArrayToFile(new File(outputFileName), decodedBytes);
把剛剛兩段程式組合成完整的程式
組合成可以直接使用的程式,請享用:
public class FileToBase64Test {
//檔案位置你也可以改成絕對路徑
private String inputFilePath = "test_image.jpg";
private String outputFilePath = "test_image_copy.jpg";
public static void main(String arg[]) throws IOException {
// 從你執行的位置讀取檔案
File inputFile = new File(inputFilePath);
byte[] fileContent = FileUtils.readFileToByteArray(inputFile);
String encodedString = Base64
.getEncoder()
.encodeToString(fileContent);
// 建立檔案
File outputFile = new File(outputFilePath);
// 解碼後將檔案內容寫入指定的檔案
byte[] decodedBytes = Base64
.getDecoder()
.decode(encodedString);
FileUtils.writeByteArrayToFile(outputFile, decodedBytes);
}
}
你應該可以看到兩個圖檔囉!
圖片轉成base64之後可以運用在 webservice 的檔案傳輸,或是在網頁上直接顯示 base64格式的圖檔,來減少資料的往返次數。
歡迎分享轉載
蘇娜 Java Blog:java圖片轉base64
喜歡我的文章可以追蹤我的FB粉專,或是加入社團一起交流Java技術,認證,或是工作喔!