展开全部

用过滤器,等我上e68a843231313335323631343130323136353331333264623137线给你,不要结问题哦

package com.jc.ts.services;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.sun.image.codec.jpeg.ImageFormatException;

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**

*添加图片水印的服务类

* */

public class WaterMark {

/**

* @param sizeContext添加水印文字

* @param request 请求流对象

* @param request 响应流对象

* */

@SuppressWarnings("deprecation")

public static void createMarkSize(String sizeContext,HttpServletRequest request,HttpServletResponse response) {

try {

String path=request.getRealPath(request.getServletPath());

FileInputStream in=new FileInputStream(path);

Image src=ImageIO.read(in);

int w=src.getWidth(null);

int h=src.getHeight(null);

BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);//构建画板

Graphics g=img.getGraphics();//得到画笔

g.drawImage(src,0,0,w,h,null);//把源图片写入画板

g.setColor(Color.red);

g.drawString(sizeContext,10,5); // 添加文字

g.dispose();//生成图片

JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());

e.encode(img);

response.getOutputStream().close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ImageFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* @param localPath 添加水印LOGO路径

* @param request 请求流对象

* @param request 响应流对象

**/

@SuppressWarnings("deprecation")

public static void createMarkLogo(String localPath,HttpServletRequest request,HttpServletResponse response) {

try {

FileInputStream file=new FileInputStream(localPath);

Image fimg=ImageIO.read(file);

int fw=fimg.getWidth(null);

int fh=fimg.getHeight(null);

String path=request.getRealPath(request.getServletPath());

FileInputStream in=new FileInputStream(path);

Image src=ImageIO.read(in);

int w=src.getWidth(null);

int h=src.getHeight(null);

BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);//构建画板

Graphics g=img.getGraphics();//得到画笔

g.drawImage(src,0,0,w,h,null);//把原图片写入画板

g.drawImage(fimg,w-20,h-15,fw,fh,null);//把水印图片写入画板

g.dispose();//生成图片

JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());

e.encode(img);

response.getOutputStream().close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ImageFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

/**

* @param localPath 添加水印图片路径

* @param request 请求流对象

* @param request 响应流对象

* @param width 水印图片的宽度

* @param height 水印图片的长度

**/

@SuppressWarnings("deprecation")

public static void createMarkLogo(String localPath,HttpServletRequest request,HttpServletResponse response,int width,int height) {

try {

FileInputStream file=new FileInputStream(localPath);

Image fimg=ImageIO.read(file);

int fw=fimg.getWidth(null);

int fh=fimg.getHeight(null);

String path=request.getRealPath(request.getServletPath());

FileInputStream in=new FileInputStream(path);

Image src=ImageIO.read(in);

int w=src.getWidth(null);//w为你过滤图片的宽度

int h=src.getHeight(null);//h为你过滤图片的长度

BufferedImage img=new BufferedImage(w+width,h+height,BufferedImage.TYPE_INT_RGB);//构建画板(画板的宽度为两个图片之和)

Graphics g=img.getGraphics();//得到画笔

g.drawImage(src,0,0,w,h,null);//把原图片写入画板

g.drawImage(fimg,width,height,fw,fh,null);//把水印图片写入画板

g.dispose();//生成图片

JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());

e.encode(img);

response.getOutputStream().close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ImageFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

注意第三个方法的注释地方g.drawImage(fimg,width,height,fw,fh,null);根据参数你在调调(放原图下面的)

过滤器调用

package com.jc.ts.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.jc.ts.services.WaterMark;

public class WaterFilter implements Filter {

public void destroy() {

// TODO Auto-generated method stub

}

public void doFilter(ServletRequest arg0, ServletResponse arg1,

FilterChain arg2) throws IOException, ServletException {

HttpServletRequest request=(HttpServletRequest)arg0;

HttpServletResponse response=(HttpServletResponse)arg1;

//WaterMark.createMarkSize("南京ts", request, response);

//WaterMark.createMarkLogo("D:\\workspace\\mybook\\WebRoot\\images\\logo\\book.jpg", request, response);

WaterMark.createMarkLogo("D:\\workspace\\mybook\\WebRoot\\images\\logo\\book.jpg", request, response,20,30);

//注意路径为绝对路径且三个效果不能同时执行

}

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

}

web.xml配置(写在servlet上面)

This is the description of my J2EE component

This is the display name of my J2EE component

WaterFilter

com.jc.ts.filter.WaterFilter

希望你能满意。。。。。。

本回答由提问者推荐

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

视频去水印 java_用java给视频水印LOGO相关推荐

  1. 视频去水印软件?在线去除视频水印工具网站?

    视频去水印软件哪个好?视频水印就是视频画面中出现的各种图案,如果有这些图案我们需要找方法把这些图案从视频上去掉.今天我们就来看一下视频去水印的超级简单的方法: 第一步:~~~~~~51视频编辑 首先通 ...

  2. 短视频去水印接口 支持各短视频平台去水印 快速稳定

    短视频去水印接口 支持各短视频平台去水印,抖音.快手.微视.西瓜等. 快速稳定 不限次 免费测试 接口开发文档 返回格式: JSON 请求方式: GET/POST 请求示例: 请求参数说明: 字段 必 ...

  3. 视频去水印免费软件有哪些?视频去水印软件大分享

    小伙伴们有没有遇到过这种一种情况?自己在看剧.刷短视频的时候,会看到一些有趣的片段,这时候就想要将它们保存下来,防止以后想看的时候找不到,但是保存下来的视频往往都会带有水印,这个时候我们就得借助一些去 ...

  4. java学习视频网站_学习Java的视频网站

    原标题:学习Java的视频网站 很多自学Java的人都发现网上的Java视频教程都会分章节讲解,但是总感觉很乱?那是因为你没有比较系统.全面的了解Java语言,没有将Java应用到实际项目中,那么有哪 ...

  5. PDF文件JAVA去水印源码,java pdf增加水印示例源码

    [实例简介] [实例截图] [核心代码] package com.test.main; import java.io.File; import java.io.FileOutputStream; im ...

  6. 如何将视频中的水印去掉,视频去水印哪个好

    不管是短视频平台还是长视频平台保存下来的视频,我们都会看到水印的存在,看起来会很影响视觉感受,那如何将视频中的水印去掉,视频去水印哪个好呢? 1.今天说的是一个电脑端的去水印工具--迅捷去水印软件,操 ...

  7. 怎么给视频去水印,如何一键消除水印

    随着科技的快速发展,人们的版权意识越来越强,在各大社交平台,我们会看到很多的图片或者视频都会有自己的logo,这不仅仅是对自己权益的保护,也是维护市场秩序,所以未经别人的允许不要轻易使用他人的图片或者 ...

  8. 如何去除视频中的水印?视频去水印方法分享

    怎么把视频中的水印给去除掉呢?当一个视频中有水印时,这会对它的观看体验产生负面影响.尤其当水印过于明显或阻碍了视频的内容时,将会对观众造成干扰和困扰.去除视频中的水印可以让观众专注于视频本身,提升观看 ...

  9. 手机视频去水印哪个好

    近两年来,随着短视频的快速发展,不管在哪个社交平台出现的图片或者视频几乎都有其自己的水印logo,而我们去除水印使用最多的可能就是美图秀秀和PS,但是我们都知道这些对于图片去水印还好,但是对于视频去水 ...

  10. 视频去水印工具哪个好用

    近两年短视频特别的受欢迎,不管是抖音还是快手,火山等使用群体都比较多,但是我们会发现,保存下来的视频都会有水印的存在,不利用我们二次使用,那怎么去水印呢?视频去水印工具哪个好用呢? 1 .在电脑上运行 ...

最新文章

  1. 在Mac系统下使用自己安装的PHP
  2. su一键封面插件_插件分享丨一键制作SU爆炸分析图插件分享
  3. DayDayUp:2018年06月07日高考必胜:程序猿的方式祝福莘莘学子高考必胜!
  4. 洗澡或游泳等导致的耳朵进水的解决方案
  5. java语言的主要特点有简单性,太厉害了!
  6. root权限执行java_执行具有root权限的java代码(一)
  7. android des ecb加密_Android逆向 | 基础知识篇 01
  8. JS - Object and Property的删除用法
  9. archLinux 安装拼音输入法
  10. rostcm6情感分析案例分析_案例分析,小刘如何处理情感关系?
  11. 信号的频谱分析,加噪降噪处理
  12. 我是如何自学成为程序员的
  13. excel如何把顺序倒过来_excel倒序怎么操作
  14. SIMetrix导入MOS管SPICE参数进行仿真的快速方法
  15. 吐血整理Python体系练手项目500例(附源代码),练完可显著提升python水平
  16. 阿里巴巴内推一面过程
  17. 丽水松阳计算机职业高中学校,浙江省丽水市松阳县职专
  18. Chrome浏览器设置网站前自动加https
  19. 这种python反爬虫手段有点意思,看我怎么P解
  20. SourceTree使用教程图文详解

热门文章

  1. STM32以DMA方式实现printf函数
  2. 容器化运行wine模拟器制作开源代码索引chm文件
  3. 英文论文写作必备网站
  4. CE实现植物大战僵尸后台运行
  5. 高速公路5G智能网联技术、方案和应用
  6. web前端腾讯外包面试记录
  7. 《东周列国志》第二十三回 卫懿公好鹤亡国 齐桓公兴兵伐楚
  8. 转载 GIS的下个十年(Cary Mann, vice president, Bentley)
  9. html如何实现文字跳动,JS代码怎么实现文字跳动特效?
  10. 用Python给喜欢的女孩写一个办公小工具,她说棒极了