使用工具类hutool包,动态添加水印
private static void addWaterMarked(String url){
// 处理大小和水印一样大
// 获取要添加水印的图片
ClassPathResource resource = new ClassPathResource(url);
// 获取拥有透明底色的水印图片
final ClassPathResource watermark = new ClassPathResource(WATERMARK_IMAGE);
// 处理要添加的水印的图片,使得图片宽高与水印模版图片宽高一致
ImgUtil.scale(
FileUtil.file(resource.getAbsolutePath()), // 要处理的图片路径
FileUtil.file(resource.getAbsolutePath()), // 处理完成要保存的图片路径
1029, // 宽度
740, // 高度
Color.WHITE // 颜色,白色即可
);
// 两张图片合并
ImgUtil.pressImage(
FileUtil.file(resource.getAbsolutePath()), // 上面处理完成的图片
FileUtil.file(resource.getAbsolutePath()), // 处理完成要保存的图片路径
ImgUtil.read(FileUtil.file(watermark.getAbsolutePath())), // 水印图片的路径
0, // x坐标
0, // y坐标
0.8f // 透明度
);
}
测试代码
final ClassPathResource watermark = new ClassPathResource(WATERMARK_IMAGE);
// 处理要添加的水印的图片,使得图片宽高与水印模版图片宽高一致
ImgUtil.scale(
FileUtil.file("D:\\Desktop\\111.png"), // 要处理的图片路径
FileUtil.file("D:\\Desktop\\2222.png"), // 处理完成要保存的图片路径
1029, // 宽度
740, // 高度
Color.WHITE // 颜色,白色即可
);
// 两张图片合并
ImgUtil.pressImage(
FileUtil.file("D:\\Desktop\\2222.png"), // 上面处理完成的图片
FileUtil.file("D:\\Desktop\\3333.png"), // 处理完成要保存的图片路径
ImgUtil.read(FileUtil.file(watermark.getAbsolutePath())), // 水印图片的路径
0, // x坐标
0, // y坐标
0.8f // 透明度
);
}
效果