Spring Boot
[SpringBoot] Thumbnailator 라이브러리를 사용하여 Spring Boot 환경에서 이미지 자르기를 구현하는 방법
도쿄아재
2023. 2. 9. 02:07
반응형
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>
반응형