import net.coobird.thumbnailator.Thumbnails; import org.springframework.http.MediaType; 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("/upload") public class ImageConverterController { @PostMapping public ResponseEntity convertImage( @RequestParam("file") MultipartFile file, @RequestParam("format") String format) { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Thumbnails.of(file.getInputStream()) .size(800, 600) .outputFormat(format) .toOutputStream(outputStream); return ResponseEntity.ok() .contentType(getMediaType(format)) .body(outputStream.toByteArray()); } catch (IOException e) { return ResponseEntity.status(500).build(); } } private MediaType getMediaType(String format) { switch (format) { case "jpg": return MediaType.IMAGE_JPEG; case "png": return MediaType.IMAGE_PNG; case "webp": return MediaType.parseMediaType("image/webp"); default: return MediaType.APPLICATION_OCTET_STREAM; } } }

Comments