package com.tools.common.util;@b@@b@import com.tools.module.app.entity.AppImage;@b@import net.coobird.thumbnailator.Thumbnails;@b@import net.coobird.thumbnailator.geometry.Positions;@b@import org.springframework.beans.factory.annotation.Autowired;@b@import org.springframework.beans.factory.annotation.Value;@b@import org.springframework.stereotype.Component;@b@import org.springframework.util.ResourceUtils;@b@@b@import javax.imageio.ImageIO;@b@import java.awt.image.BufferedImage;@b@import java.io.File;@b@import java.io.FileNotFoundException;@b@import java.io.IOException;@b@@b@/**@b@ * 图片处理@b@ * 爪哇笔记:https://blog.52itstyle.vip@b@ */@b@@Component@b@public class ImageUtils {@b@@b@ @Value("${file.path}")@b@ private String filePath;@b@@b@ private static File watermark;@b@@b@ static {@b@ try {@b@ watermark = ResourceUtils.getFile("classpath:static/images/watermark.png");@b@ } catch (FileNotFoundException e) {@b@ e.printStackTrace();@b@ }@b@ }@b@@b@ /**@b@ * 加水印@b@ * @param imageModel@b@ */@b@ public File watermark(AppImage imageModel){@b@ String inputPath = filePath +"/"+ imageModel.getFileName();@b@ File outputFile = new File(filePath +"/"+ imageModel.getImagePath());@b@ // 不透明度@b@ float opacity = 0.7f;@b@ try {@b@ // 获取原图文件@b@ File file = new File(inputPath);@b@ // ImageIO读取图片@b@ BufferedImage image = ImageIO.read(file);@b@ Thumbnails.of(image)@b@ // 设置图片大小@b@ .size(image.getWidth(), image.getHeight())@b@ // 加水印 参数:1.水印位置 2.水印图片 3.不透明度0.0-1.0@b@ .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(watermark), opacity)@b@ // 输出到文件@b@ .toFile(outputFile);@b@ return outputFile;@b@ } catch (IOException e) {@b@ e.printStackTrace();@b@ }@b@ return null;@b@ }@b@@b@ public static void main(String[] args) {@b@ // 原图片地址@b@ String imageUrl = "F:\\111.gif";@b@ // 水印图片 相对于resource目录@b@ String watermark = "F:\\watermark.png";@b@ // 输出到文件@b@ String outputFile = "F:\\222.gif";@b@ // 不透明度@b@ float opacity = 0.7f;@b@ try {@b@ // 获取原图文件@b@ File file = new File(imageUrl);@b@ // ImageIO读取图片@b@ BufferedImage image = ImageIO.read(file);@b@ System.out.println(image.getWidth());@b@ Thumbnails.of(image)@b@ // 设置图片大小@b@ .size(image.getWidth(), image.getHeight())@b@ // 加水印 参数:1.水印位置 2.水印图片 3.不透明度0.0-1.0@b@ .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File(watermark)), opacity)@b@ // 输出到文件@b@ .outputQuality(1)@b@ .toFile(outputFile);@b@ } catch (IOException e) {@b@ e.printStackTrace();@b@ }@b@ }@b@}