본문 바로가기

Spring Boot

[SpringBoot] Thumbnailator 라이브러리를 사용하여 Spring Boot 환경에서 이미지 자르기를 구현하는 방법

반응형

Thumbnailator 라이브러리를 사용하여 Spring Boot 환경에서 이미지 자르기를 구현하는 방법입니다.

import net.coobird.thumbnailator.Thumbnails;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

@RestController
@RequestMapping("/image")
public class ImageController {

    @PostMapping("/crop")
    public ResponseEntity<byte[]> cropImage(@RequestParam("image") MultipartFile image,
                                            @RequestParam("x") int x,
                                            @RequestParam("y") int y,
                                            @RequestParam("width") int width,
                                            @RequestParam("height") int height) throws IOException {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        Thumbnails.of(image.getInputStream())
                .sourceRegion(x, y, width, height)
                .size(width, height)
                .toOutputStream(outputStream);
        return new ResponseEntity<>(outputStream.toByteArray(), HttpStatus.OK);
    }
}

이미지 파일을 사용하여 /image/crop  POST 요청을 수행하고, 자르기 영역의 왼쪽 상단 모서리 좌표와 원하는 너비 및 높이를 지정합니다. 축소 이미지 라이브러리는 이미지를 자르는 데 사용되며 잘라낸 이미지는 200 OK 상태의 응답 엔터티로 반환됩니다.

사용자 환경에 Thumbnailator가 설치되어 있다고 가정합니다. Maven을 사용하는 경우 pom.xml 파일에 다음과 같은 종속성을 추가하여 섬네일레이터를 설치할 수 있습니다.

<dependency>
  <groupId>net.coobird</groupId>
  <artifactId>thumbnailator</artifactId>
  <version>0.4.11</version>
</dependency>
반응형