8 changed files with 114 additions and 11 deletions
@ -0,0 +1,29 @@ |
|||||
|
package com.userinformation.backend.controller; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
|
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
import com.userinformation.backend.service.ImageService; |
||||
|
import com.userinformation.backend.util.RequestResult; |
||||
|
|
||||
|
/** |
||||
|
* @describe: 图片处理控制层 |
||||
|
* @author: xiaowuler |
||||
|
* @createTime: 2021-12-03 13:10 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("image") |
||||
|
public class ImageController { |
||||
|
|
||||
|
private final ImageService imageService; |
||||
|
public ImageController(ImageService imageService){ |
||||
|
this.imageService = imageService; |
||||
|
} |
||||
|
|
||||
|
@PostMapping("convert") |
||||
|
public RequestResult convert(String url) throws IOException { |
||||
|
return RequestResult.success(imageService.convert(url)); |
||||
|
} |
||||
|
} |
@ -0,0 +1,43 @@ |
|||||
|
package com.userinformation.backend.service; |
||||
|
|
||||
|
import javax.imageio.ImageIO; |
||||
|
import java.awt.image.BufferedImage; |
||||
|
import java.io.File; |
||||
|
import java.io.IOException; |
||||
|
import java.util.Locale; |
||||
|
|
||||
|
import org.springframework.beans.factory.annotation.Value; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.util.Assert; |
||||
|
|
||||
|
/** |
||||
|
* @describe: 图片处理 逻辑层 |
||||
|
* @author: xiaowuler |
||||
|
* @createTime: 2021-12-03 13:12 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class ImageService { |
||||
|
|
||||
|
@Value("${custom.image.path}") |
||||
|
private String imagePath; |
||||
|
|
||||
|
@Value("${custom.image.url}") |
||||
|
private String imageUrl; |
||||
|
|
||||
|
private final static String TIF_FILE_SUFFIX = ".tif"; |
||||
|
private final static String PNG_FILE_SUFFIX = ".png"; |
||||
|
|
||||
|
public String convert(String url) throws IOException { |
||||
|
String filepath = url.replace(imageUrl, imagePath); |
||||
|
File sourceFile = new File(filepath); |
||||
|
Assert.isTrue(sourceFile.exists(), "文件不存在"); |
||||
|
Assert.isTrue(filepath.toLowerCase(Locale.ROOT).endsWith(TIF_FILE_SUFFIX), "文件格式不正确"); |
||||
|
String targetFilePath = filepath.replace(TIF_FILE_SUFFIX, PNG_FILE_SUFFIX); |
||||
|
File targetFile = new File(targetFilePath); |
||||
|
if (!targetFile.exists()){ |
||||
|
BufferedImage image = ImageIO.read(sourceFile); |
||||
|
ImageIO.write(image, "png", targetFile); |
||||
|
} |
||||
|
return targetFilePath.replace(imagePath, imageUrl); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue