String targetFilePath = "E:\\nfsc\\1.jpg";
String resultFilePath = "E:\\nfsc\\test.jpg";
OutputStream os;
Image srcImg = ImageIO.read(new File(targetFilePath));
int width = srcImg.getWidth(null)+400;
int height = srcImg.getHeight(null)+300;
//获得一个比图片更大一点的画布
BufferedImage buffImg = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB);
// 2、得到画笔对象
Graphics2D g = buffImg.createGraphics();
g.setClip(0, 0, width, height);
g.setColor(Color.WHITE);
g.fillRect(0, 0, width, height);
// 3、设置对线段的锯齿状边缘处理
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
// 4、把对象图片填充进去
g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null),srcImg.getHeight(null), Image.SCALE_SMOOTH), 250, 150,null);
// 5、设置水印文字颜色
g.setColor(Color.BLACK);
// 6、设置水印文字Font
g.setFont(new Font("隶书", Font.ITALIC, 30));
// 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y)
g.drawString("dddddd", 10, 100);
// 9、释放资源
g.dispose();
// 10、生成图片
os = new FileOutputStream(resultFilePath);
ImageIO.write(buffImg, "JPG", os);
System.out.println("图片完成添加水印文字");