springboot实现上传图片添加水印
时间: 2023-08-05 08:43:03 浏览: 168
js用层实现为图片添加水印效果
要实现上传图片并添加水印的功能,可以使用Spring Boot框架和Java图像处理库ImageJ来完成。
以下是实现的步骤:
1. 首先,在Spring Boot项目中添加ImageJ库的依赖,可以在pom.xml中添加以下代码:
```
<dependency>
<groupId>net.imagej</groupId>
<artifactId>ij</artifactId>
<version>1.53c</version>
</dependency>
```
2. 接下来,创建一个Controller,用于处理上传图片的请求。在Controller中,可以使用Spring Boot的MultipartFile来接收上传的文件,然后使用ImageJ库来添加水印。以下是一个示例:
```
@RestController
public class ImageController {
@PostMapping("/upload")
public ResponseEntity<String> uploadImage(@RequestParam("file") MultipartFile file) throws IOException {
File convFile = new File(file.getOriginalFilename());
file.transferTo(convFile);
// 添加水印
ImagePlus image = IJ.openImage(convFile.getAbsolutePath());
ImageProcessor ip = image.getProcessor();
ip.setColor(Color.red);
ip.setFont(new Font("SansSerif", Font.BOLD, 24));
ip.drawString("Watermark", 10, 50);
image.updateAndDraw();
File resultFile = new File("result.jpg");
IJ.save(image, resultFile.getAbsolutePath());
// 返回结果
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.TEXT_PLAIN);
return new ResponseEntity<>("File uploaded and processed successfully", headers, HttpStatus.OK);
}
}
```
在上面的代码中,我们首先将MultipartFile转换为File对象,然后使用ImageJ库打开该文件。接着,我们设置水印的颜色、字体和位置,并将水印添加到图像中。最后,我们将处理后的图像保存到磁盘中,并返回处理成功的消息。
3. 最后,我们可以使用Postman等工具测试上传图片并添加水印的功能。将图片作为表单数据上传到http://localhost:8080/upload,即可得到添加水印后的结果。
需要注意的是,在实际应用中,我们应该使用更加安全和健壮的方式来保存上传的文件,避免文件名冲突和文件覆盖等问题。
阅读全文