

Future Engineering
기술의 최전선을 기록합니다.
Java 이미지 최적화 라이브러리 Thumbnailator
Library약 1개월 전
Thumbnailator 소개
Thumbnailator는 Java 기반의 간편하고 강력한 이미지 처리 라이브러리로, 특히 이미지 리사이징 및 썸네일 제작에 최적화되어 있습니다. 직관적인 API로 빠른 개발이 가능하며, 다양한 이미지 형식을 지원합니다.
주요 특징
-
간결하고 명확한 API 제공
-
다양한 이미지 포맷 지원 (JPEG, PNG, GIF 등)
-
우수한 이미지 품질 유지
-
메모리 효율성이 뛰어나 서버 부하 최소화
설치 방법 (Maven)
다음 의존성을 Maven의 pom.xml
파일에 추가하여 설치합니다.
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.20</version>
</dependency>
이미지 리사이징 예제
기본적인 썸네일 생성
Thumbnails.of(new File("original.jpg"))
.size(200, 200)
.toFile(new File("thumbnail.jpg"));
이미지 품질 지정
Thumbnails.of("original.png")
.size(300, 300)
.outputFormat("jpg")
.outputQuality(0.8)
.toFile("optimized.jpg");
이미지 리사이징 후 S3 업로드 예시
public void resizeAndUploadToS3(InputStream inputStream, String bucketName, String keyName) {
try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {
Thumbnails.of(inputStream)
.size(300, 300)
.outputFormat("jpg")
.outputQuality(0.85)
.toOutputStream(os);
byte[] bytes = os.toByteArray();
InputStream resizedInputStream = new ByteArrayInputStream(bytes);
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(bytes.length);
metadata.setContentType("image/jpeg");
s3Client.putObject(bucketName, keyName, resizedInputStream, metadata);
} catch (IOException e) {
e.printStackTrace();
}
}
주의할 점
-
너무 낮은 품질 설정(
outputQuality
)은 이미지 품질 저하를 유발할 수 있습니다. -
원본 이미지의 크기 및 비율에 따라 비율 유지 옵션(
keepAspectRatio
) 설정도 고려해보세요.
Thumbnailator를 활용하여 Java 애플리케이션에서 효율적이고 빠르게 이미지 최적화를 수행할 수 있습니다.
키워드
Java 이미지 라이브러리이미지 리사이징