[JAVA] 이미지 파일을 Base64 인코딩

최지영·2022년 9월 15일
0

✨ Java에서 이미지 파일을 Base64 인코딩

Java에서 이미지 파일을 Base64로 인코딩하여 Kafka 로 Publishing을 할일이 있어 간단하게 코드 정리!

가장 먼저 commons-io maven import 를 진행해준다.

1. pom.xml

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

2. ImageConverter 클래스


import java.io.IOException;

/***
 *
 * @param <T> File
 * @param <V> String
 */
public abstract class ImageConverter<T,V>{
    public abstract V convert(T t) throws IOException;
}

3. ImageToBase64 클래스

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.util.Base64;

public class ImageToBase64 extends ImageConverter<File,String>{

    @Override
    public String convert(File file) throws IOException {
        byte [] fileContent = FileUtils.readFileToByteArray(file);
        return  Base64.getEncoder().encodeToString(fileContent);
    }
}

4. Main클래스

import java.io.File;
import java.io.IOException;

public class ImageProcessMain {
    public static void main(String[] args) throws IOException {

        String filePath = "dog.jpg";
        ImageConverter<File, String> converter = new ImageToBase64();
        String fileContentStringValue = converter.convert(new File(filePath));
        System.out.println("fileContentStringValue = " + fileContentStringValue);
    }
}

😎 결과 출력


fileContentStringValue = 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

0개의 댓글