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