视频去水印 java_用java给视频水印LOGO
展开全部
用过滤器,等我上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相关推荐
- 视频去水印软件?在线去除视频水印工具网站?
视频去水印软件哪个好?视频水印就是视频画面中出现的各种图案,如果有这些图案我们需要找方法把这些图案从视频上去掉.今天我们就来看一下视频去水印的超级简单的方法: 第一步:~~~~~~51视频编辑 首先通 ...
- 短视频去水印接口 支持各短视频平台去水印 快速稳定
短视频去水印接口 支持各短视频平台去水印,抖音.快手.微视.西瓜等. 快速稳定 不限次 免费测试 接口开发文档 返回格式: JSON 请求方式: GET/POST 请求示例: 请求参数说明: 字段 必 ...
- 视频去水印免费软件有哪些?视频去水印软件大分享
小伙伴们有没有遇到过这种一种情况?自己在看剧.刷短视频的时候,会看到一些有趣的片段,这时候就想要将它们保存下来,防止以后想看的时候找不到,但是保存下来的视频往往都会带有水印,这个时候我们就得借助一些去 ...
- java学习视频网站_学习Java的视频网站
原标题:学习Java的视频网站 很多自学Java的人都发现网上的Java视频教程都会分章节讲解,但是总感觉很乱?那是因为你没有比较系统.全面的了解Java语言,没有将Java应用到实际项目中,那么有哪 ...
- PDF文件JAVA去水印源码,java pdf增加水印示例源码
[实例简介] [实例截图] [核心代码] package com.test.main; import java.io.File; import java.io.FileOutputStream; im ...
- 如何将视频中的水印去掉,视频去水印哪个好
不管是短视频平台还是长视频平台保存下来的视频,我们都会看到水印的存在,看起来会很影响视觉感受,那如何将视频中的水印去掉,视频去水印哪个好呢? 1.今天说的是一个电脑端的去水印工具--迅捷去水印软件,操 ...
- 怎么给视频去水印,如何一键消除水印
随着科技的快速发展,人们的版权意识越来越强,在各大社交平台,我们会看到很多的图片或者视频都会有自己的logo,这不仅仅是对自己权益的保护,也是维护市场秩序,所以未经别人的允许不要轻易使用他人的图片或者 ...
- 如何去除视频中的水印?视频去水印方法分享
怎么把视频中的水印给去除掉呢?当一个视频中有水印时,这会对它的观看体验产生负面影响.尤其当水印过于明显或阻碍了视频的内容时,将会对观众造成干扰和困扰.去除视频中的水印可以让观众专注于视频本身,提升观看 ...
- 手机视频去水印哪个好
近两年来,随着短视频的快速发展,不管在哪个社交平台出现的图片或者视频几乎都有其自己的水印logo,而我们去除水印使用最多的可能就是美图秀秀和PS,但是我们都知道这些对于图片去水印还好,但是对于视频去水 ...
- 视频去水印工具哪个好用
近两年短视频特别的受欢迎,不管是抖音还是快手,火山等使用群体都比较多,但是我们会发现,保存下来的视频都会有水印的存在,不利用我们二次使用,那怎么去水印呢?视频去水印工具哪个好用呢? 1 .在电脑上运行 ...
最新文章
- 在Mac系统下使用自己安装的PHP
- su一键封面插件_插件分享丨一键制作SU爆炸分析图插件分享
- DayDayUp:2018年06月07日高考必胜:程序猿的方式祝福莘莘学子高考必胜!
- 洗澡或游泳等导致的耳朵进水的解决方案
- java语言的主要特点有简单性,太厉害了!
- root权限执行java_执行具有root权限的java代码(一)
- android des ecb加密_Android逆向 | 基础知识篇 01
- JS - Object and Property的删除用法
- archLinux 安装拼音输入法
- rostcm6情感分析案例分析_案例分析,小刘如何处理情感关系?
- 信号的频谱分析,加噪降噪处理
- 我是如何自学成为程序员的
- excel如何把顺序倒过来_excel倒序怎么操作
- SIMetrix导入MOS管SPICE参数进行仿真的快速方法
- 吐血整理Python体系练手项目500例(附源代码),练完可显著提升python水平
- 阿里巴巴内推一面过程
- 丽水松阳计算机职业高中学校,浙江省丽水市松阳县职专
- Chrome浏览器设置网站前自动加https
- 这种python反爬虫手段有点意思,看我怎么P解
- SourceTree使用教程图文详解