/**
public static MultipartFile addWorkMarkToMutipartFile(MultipartFile multipartFile,String time , String address) throws IOException {
// 获取图片文件名 xxx.png xxx
String originFileName = multipartFile.getOriginalFilename();
// 获取原图片后缀 png
int lastSplit = originFileName.lastIndexOf(".");
String suffix = originFileName.substring(lastSplit + 1);
// 获取图片原始信息
String dOriginFileName = multipartFile.getOriginalFilename();
String dContentType = multipartFile.getContentType();
// 是图片且不是gif才加水印
if (!suffix.equalsIgnoreCase("gif") && dContentType.contains("image")) {
// 获取水印图片
InputStream inputImg = multipartFile.getInputStream();
Image img = ImageIO.read(inputImg);
// 加图片水印
int imgWidth = img.getWidth(null);
int imgHeight = img.getHeight(null);
BufferedImage bufImg = new BufferedImage(imgWidth, imgHeight,
BufferedImage.TYPE_INT_RGB);
//设置字体
Font font = FontUtils.loadFont(calcFontSize(imgWidth));
Color color=new Color(255,255,255,128);
//调用画文字水印的方法
markWord(bufImg, img, font, color, imgWidth, imgHeight , time,address);
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageOutputStream imOut = ImageIO.createImageOutputStream(bs);
ImageIO.write(bufImg, suffix, imOut);
InputStream is = new ByteArrayInputStream(bs.toByteArray());
// 加水印后的文件上传
multipartFile = new MockMultipartFile("file", dOriginFileName, dContentType,
is);
}
//返回加了水印的上传对象
return multipartFile;
}
public static Float calcFontSize(int imgWidth){
if(imgWidth > 6000){
return 185f;
}
if(imgWidth > 5500){
return 175f;
}
if(imgWidth > 5000){
return 165f;
}
if(imgWidth > 4500){
return 155f;
}
if(imgWidth > 4000){
return 145f;
}
if(imgWidth > 3500){
return 135f;
}
if(imgWidth > 3000){
return 125f;
}
if(imgWidth > 2500){
return 115f;
}
if(imgWidth > 2000){
return 105f;
}
if(imgWidth > 1500){
return 95f;
}
if(imgWidth > 1000){
return 85f;
}
if(imgWidth > 500){
return 55f;
}
return 25f;
}
后端给图片加水印的方法
最新推荐文章于 2024-07-13 02:37:04 发布