java圖片轉base64

你的專案需要將圖片轉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

參考資料:Image to Base64 String

喜歡我的文章可以追蹤我的FB粉專,或是加入社團一起交流Java技術,認證,或是工作喔!