java 水印处理_使用java技术,批量进行图片水印处理
发布日期:2021-06-24 13:48:25 浏览次数:2 分类:技术文章

本文共 1873 字,大约阅读时间需要 6 分钟。

步骤:

1.建立web工程[完成]

2.编写网页(含有图片)

3.编写过滤器,实现对所有请求页面的图片加水印

核心代码:

/**

* 所有请求均要经过此过滤方法

*/

public void doFilter(ServletRequest req, ServletResponse res,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;

// 1.获取上下文路径 /WaterMark

String path = request.getContextPath();

// 2.获得请求路径 /WaterMark/images/img1.jpg

String requestUri = request.getRequestURI();

// 3.取得图片的物理路径

// 这个也可以得到工程的发布路径

// realPath+requestUri就可以得到图片的完整路径

// String realPath=request.getRealPath("/");

// 左右斜杠是不影响的

String realPath = request.getSession().getServletContext().getRealPath(

"/")

+ requestUri

.substring(requestUri.indexOf(path) + path.length());

// 4.将图片从请求中读入到字节缓冲区

FileInputStream fis = new FileInputStream(realPath);

// 创建图片缓冲区

byte[] imageBuff = new byte[fis.available()];

// 读入图片字节数据

fis.read(imageBuff);

// 5.获取图片的原始高度和宽度

Image image = new ImageIcon(imageBuff).getImage();

int imgWidth = image.getWidth(null);

int imgHeight = image.getHeight(null);

// 6.将文字信息合成到图片缓冲区

BufferedImage bufferedImage = new BufferedImage(imgWidth, imgHeight,

BufferedImage.TYPE_INT_RGB);

Graphics g = bufferedImage.createGraphics();

// 将图像数据加载进来

g.drawImage(image, 0, 0, imgWidth, imgHeight, null);

// 绘制文字

g.setColor(Color.RED); // 设置文字颜色

Font f = new Font("隶书", Font.ITALIC, 30); // 创建字体,字体风格,字号大小

g.setFont(f); // 设置字体

g.drawString("java高级工程师", 300, 900);

g.drawString("QQ:425336980", 320, 940);

g.dispose();

// 7.将缓冲区的图像转换为字节数组

ByteArrayOutputStream out = new ByteArrayOutputStream();

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

// 将图像缓冲区的数据编码成JPEG格式的数据

encoder.encode(bufferedImage);

// 将JPEG格式的图像转换成字节数组

byte[] resultData = out.toByteArray();

out.close();

// 8.将转化后的JPEG字节数组数据直接送到servlet响应流进行输出

res.setContentLength(resultData.length);

res.getOutputStream().write(resultData);

res.getOutputStream().close();

chain.doFilter(req, res);

}

转载地址:https://blog.csdn.net/weixin_33245447/article/details/114126840 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java ueditor 图片上传加水印_百度编辑器ueditor给上传的图片添加水印
下一篇:java define 宏_宏定义&宏函数(日志输出)define

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月19日 19时22分48秒