前言
无
问题描述
将一个给定的图片 添加一个水印在指定的位置
思路
思路 : 使用swing的 Image, Graphics相关api完成, 详见代码
如果要实现旋转, 或者其他功能, 应该也有相关的api可以直接 或者间接的完成
如果对这个比较感兴趣, 可以看看参考的连接, 我这个也是仿照着该功能实现的, 不过比该代码草率一些
参考代码
/**
* file name : Test11AddWatermark.java
* created at : 4:19:06 PM Nov 23, 2015
* created by
*/
package com.hx.test08;
public class Test11AddWatermark {
// 为图片添加水印
public static void main(String []args) throws Exception {
String srcPath = Tools.getTmpPath(233, Tools.JPG);
String waterMarkPath = Tools.getTmpPath(234, Tools.PNG);
String targetPath = Tools.getTmpPath(235, Tools.PNG);
Rectangle rect = new Rectangle(200, 100, 400, 400);
addWaterMark(srcPath, waterMarkPath, targetPath, rect);
}
// 为给定的图片添加水印
private static void addWaterMark(String srcImgPath, String waterMarkPath, String targetPath, Rectangle rect) throws Exception {
BufferedImage srcImg = ImageIO.read(new File(srcImgPath) );
BufferedImage waterMarkImg = ImageIO.read(new File(waterMarkPath) );
Graphics g = srcImg.getGraphics();
g.drawImage(waterMarkImg, rect.x, rect.y, rect.width, rect.height, null);
ImageIO.write(srcImg, Tools.getFileName(srcImgPath, '.'), new File(targetPath) );
new PaintImageFrame("addWaterMark", srcImg);
Log.log("add water mark success !");
}
}
PaintImageFrame 的代码这里就不贴出来了, 不过是为了展示一下图片而已
效果截图
总结
当然 这种功能完全可以通过ps, 美图等等其他可视化工具实现
这个不过是瞎扯淡, 写着玩..
参考 :
注 : 因为作者的水平有限,必然可能出现一些bug, 所以请大家指出!