首先在pom文件中引入jar包
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
代码实现:
package com.util;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
public class ImageUtil {
public static void main(String[] args) throws IOException {
String basePath=Thread.currentThread().getContextClassLoader().getResource("").getPath();
Thumbnails.of(new File("C:/Users/lenovo/Desktop/1.png"))
.size(200,200)
.watermark(Positions.BOTTOM_LEFT,
ImageIO.read(new File(basePath+"/aa.png")),
0.25f)
.outputQuality(0.8f)
.toFile(basePath+"/bb.jpg");
}
}
图片处理工具类:
package com.util;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class ImageUtil {
private static String basePath=Thread.currentThread().getContextClassLoader().getResource("").getPath();
private static final SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMMddHHmmss");
private static final Random random=new Random();
public static String generateThumbnail(CommonsMultipartFile thumbnail,String targetAddr){
String realFileName=getRandomFileName();
String extension=getFileExtension(thumbnail);
makeDirPath(targetAddr);
String relativeAddr=targetAddr+realFileName+extension;
File dest=new File(PathUtil.getImageBasePath()+realFileName);
try {
Thumbnails.of(thumbnail.getInputStream())
.size(200,200)
.watermark(Positions.BOTTOM_RIGHT,
ImageIO.read(new File(basePath+"/watermark.png")),0.25f)
.outputQuality(0.8f)
.toFile(dest);
} catch (IOException e) {
e.printStackTrace();
}
return relativeAddr;
}
private static void makeDirPath(String targetAddr) {
String realFileParentPath=PathUtil.getImageBasePath()+targetAddr;
File dirPath=new File(realFileParentPath);
if(!dirPath.exists()){
dirPath.mkdirs();
}
}
private static String getRandomFileName() {
int rannum=random.nextInt(89999)+10000;
String nowTimeStr=simpleDateFormat.format(new Date());
return nowTimeStr+rannum;
}
private static String getFileExtension(CommonsMultipartFile cFile){
String originalFileName=cFile.getOriginalFilename();
cFile.getName();
return originalFileName.substring(originalFileName.lastIndexOf("."));
}
}
常用项目中对于项目路径处理工具类:
package com.util;
public class PathUtil {
private static String separator=System.getProperty("file.separator");
public static String getImageBasePath(){
String os=System.getProperty("os.name");
String basePath="";
if(os.toLowerCase().startsWith("win")){
basePath="E:image/";
}else{
basePath="/home/image/";
}
basePath=basePath.replace("/",separator);
return basePath;
}
}