给大家推荐个靠谱的公众号程序员探索之路,大家一起加油
File file = new File(request.getServletContext().getRealPath(
"WEB-INF/classes/xinzhizhu.jpg"));
File file1 = new File(request.getServletContext().getRealPath(
"WEB-INF/classes/qfhl.png"));
// 文字水印
// 1.把新之助的图像信息读取出来
BufferedImage bufferedImage = ImageIO.read(new FileInputStream(file));
// 2.拿到画布 也就是获取graphics
Graphics graphics = bufferedImage.getGraphics();
// 3.设置绘制文字的字体
// BASELINE是文字的基线每一文字都有基线
// CENTER_BASELINE就是在中间
// 20指定的是大小
// graphics.setFont(new Font("宋体", Font.CENTER_BASELINE, 20));
// 4.设置字体的颜色 参数依次是 r g b 透明度
// 0x代表的是十六进制
// graphics.setColor(new Color(0xff, 0xff, 0xff, 0x88));
// 5.画上字 参数是:所需要的字 字显示在图片的位置 横坐标 纵坐标
// graphics.drawString("版权所有,zzh", bufferedImage.getWidth() / 2 - 80,
// bufferedImage.getHeight() - 80);
// ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
// 图片水印 和文字水印 前两步一样
BufferedImage bufferedImage1 = ImageIO.read(new FileInputStream(file1));
// 画一张图片上去 参数依次是 要加的谁赢 位置 x y 第三个参数是ImageObserver observer
// 它的作用是观察图片是否正在被占用
graphics.drawImage(bufferedImage1, bufferedImage.getWidth() / 2 - 80,
bufferedImage.getHeight() - 80, null);
// 这个一句话地作用是将加水印的图片 显示在浏览器上
ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
// 如果是想保存下来 直接传进去目标路径就可以了
File saveFile = new File("D:\\csdn\\saveFile.jsp");
ImageIO.write(bufferedImage, "jpg", saveFile);