반응형
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>
반응형
'Spring Boot' 카테고리의 다른 글
[VUE.JS] Axios를 사용하는 Vue.js의 파일 업로드 (0) | 2023.02.09 |
---|---|
[Node.js] WebRTC 멀티화상채팅 기본 데모소스 (0) | 2023.02.09 |
[SpringBoot]Spring Boot 환경에서 이미지 크기 조정 (0) | 2023.02.09 |
[Flask] GET, POST, PUT 및 DELETE 작업을 구현하는 REST API를 만드는 방법 (0) | 2023.02.09 |
[PHP] php api 구현 PDO를 사용하여 PHP에서 데이터베이스 작업(GET, POST, PUT, DELETE)을 통합하는 방법 (0) | 2023.02.09 |