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
Post a Comment