- 浏览: 141796 次
- 性别:
- 来自: 厦门
最新评论
-
占星:
[b][flash=200,200][url][img][li ...
hibernate结合spring怎么处理对象的延迟加载? -
accphc:
...
处理properties文件中key包含空格和等号的情况 -
赵武艺:
有没有办法不让jfreechart热点刷新页面?
有热点的JfreeChart柱型图(原创)[转] -
yuchensuifeng:
谢谢分享!刚学这个,现在去试试!
在struts2中使用JFreeChart -
wrrwhn:
Caused by: There is no result t ...
在struts2中使用JFreeChart
最近对图片加上水印,有兴趣,找到一个牛人写的帖子,转载到这里,供大家分享!!!!!!
package net.csdn.xdj.model.d050403;
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
/**
* <p>加入水印信息</p>
* <p>Title: community.csnd.net</p>
* <p>Description: java问题解答</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: 自由人</p>
* @author 许德建(simonxuluo)
* @version 1.0
*/
public class Mark {
public Mark() {
}
public static ByteArrayOutputStream manipulateImage(String message,
byte[] imageData) {
ByteArrayOutputStream baos = null;
Frame frame = null;
Graphics graphics = null;
try {
frame = new Frame();
frame.addNotify();
MediaTracker mt = new MediaTracker(frame);
Image image = Toolkit.getDefaultToolkit().createImage(imageData);
mt.addImage(image, 0);
mt.waitForAll();
int w = image.getWidth(frame);
int h = image.getHeight(frame);
BufferedImage offscreen = new BufferedImage(w, h,
BufferedImage.TYPE_3BYTE_BGR);
graphics = offscreen.getGraphics();
graphics.drawImage(image, 0, 0, frame);
graphics.setColor(Color.RED);
graphics.setFont(new Font("宋体", Font.BOLD | Font.ITALIC, 20));
graphics.drawString(message, 9, 29);
graphics.setColor(Color.WHITE);
graphics.drawString(message, 10, 30);
baos = new ByteArrayOutputStream();
JPEGImageEncoder encoder = com.sun.image.codec.jpeg.JPEGCodec.
createJPEGEncoder(baos);
encoder.encode(offscreen);
}
catch (InterruptedException e) {
e.printStackTrace(System.out); //To change body of catch statement use File | Settings | File Templates.
}
catch (IOException e) {
e.printStackTrace(System.out); //To change body of catch statement use File | Settings | File Templates.
}
finally {
if (graphics != null) {
graphics.dispose();
}
if (frame != null) {
frame.removeNotify();
}
}
return baos;
}
}
package net.csdn.xdj.servlet.d050403;
import org.apache.struts.action.*;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.upload.FormFile;
/**
* <p>页面表单影射,Action FormBean</p>
* <p>Title: community.csnd.net</p>
* <p>Description: java问题解答</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: 自由人</p>
* @author 许德建(simonxuluo)
* @version 1.0
*/
public class UploadAFB
extends ActionForm {
private String theAction;
private FormFile theFile;
private String newFile;
public void setTheAction(String theAction) {
this.theAction = theAction;
}
public String getTheAction() {
return this.theAction;
}
public void setTheFile(FormFile theFile) {
this.theFile = theFile;
}
public void setNewFile(String newFile) {
this.newFile = newFile;
}
public FormFile getTheFile() {
return this.theFile;
}
public String getNewFile() {
return newFile;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if (theAction != null) {
if (theFile == null) {
errors.add(errors.GLOBAL_ERROR, new ActionError("error", "没有指定上传文件"));
}
if (newFile == null & newFile.length() == 0) {
errors.add(errors.GLOBAL_ERROR, new ActionError("error", "没有指定保存文件路径"));
}
}
// verify
return errors;
}
}
package net.csdn.xdj.servlet.d050403;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.struts.upload.FormFile;
import java.io.*;
import net.csdn.xdj.model.d050403.Mark;
/**
* <p>上传处理,Action</p>
* <p>Title: community.csnd.net</p>
* <p>Description: java问题解答</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: 自由人</p>
* @author 许德建(simonxuluo)
* @version 1.0
*/
public class UploadImage
extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response) {
UploadAFB form = (UploadAFB) actionForm;
String theAction = form.getTheAction();
form.setTheAction("uploadImage");
if (theAction == null) {
theAction = "";
}
else if (theAction.equals("uploadImage")) {
FormFile file = form.getTheFile();
File newFile = new File(form.getNewFile());
if (file == null || newFile == null) {
return mapping.getInputForward();
}
try {
ByteArrayOutputStream baos = Mark.manipulateImage("许德建",
file.getFileData());
FileOutputStream fos = new FileOutputStream(newFile);
baos.writeTo(fos);
fos.close();
baos.close();
request.setAttribute("message", "上传成功");
return mapping.findForward("response");
}
catch (FileNotFoundException ex) {
// error handle
}
catch (IOException ex) {
// error handle
}
}
return mapping.getInputForward();
}
}
package net.csdn.xdj.model.d050403;
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
/**
* <p>加入水印信息</p>
* <p>Title: community.csnd.net</p>
* <p>Description: java问题解答</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: 自由人</p>
* @author 许德建(simonxuluo)
* @version 1.0
*/
public class Mark {
public Mark() {
}
public static ByteArrayOutputStream manipulateImage(String message,
byte[] imageData) {
ByteArrayOutputStream baos = null;
Frame frame = null;
Graphics graphics = null;
try {
frame = new Frame();
frame.addNotify();
MediaTracker mt = new MediaTracker(frame);
Image image = Toolkit.getDefaultToolkit().createImage(imageData);
mt.addImage(image, 0);
mt.waitForAll();
int w = image.getWidth(frame);
int h = image.getHeight(frame);
BufferedImage offscreen = new BufferedImage(w, h,
BufferedImage.TYPE_3BYTE_BGR);
graphics = offscreen.getGraphics();
graphics.drawImage(image, 0, 0, frame);
graphics.setColor(Color.RED);
graphics.setFont(new Font("宋体", Font.BOLD | Font.ITALIC, 20));
graphics.drawString(message, 9, 29);
graphics.setColor(Color.WHITE);
graphics.drawString(message, 10, 30);
baos = new ByteArrayOutputStream();
JPEGImageEncoder encoder = com.sun.image.codec.jpeg.JPEGCodec.
createJPEGEncoder(baos);
encoder.encode(offscreen);
}
catch (InterruptedException e) {
e.printStackTrace(System.out); //To change body of catch statement use File | Settings | File Templates.
}
catch (IOException e) {
e.printStackTrace(System.out); //To change body of catch statement use File | Settings | File Templates.
}
finally {
if (graphics != null) {
graphics.dispose();
}
if (frame != null) {
frame.removeNotify();
}
}
return baos;
}
}
package net.csdn.xdj.servlet.d050403;
import org.apache.struts.action.*;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.upload.FormFile;
/**
* <p>页面表单影射,Action FormBean</p>
* <p>Title: community.csnd.net</p>
* <p>Description: java问题解答</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: 自由人</p>
* @author 许德建(simonxuluo)
* @version 1.0
*/
public class UploadAFB
extends ActionForm {
private String theAction;
private FormFile theFile;
private String newFile;
public void setTheAction(String theAction) {
this.theAction = theAction;
}
public String getTheAction() {
return this.theAction;
}
public void setTheFile(FormFile theFile) {
this.theFile = theFile;
}
public void setNewFile(String newFile) {
this.newFile = newFile;
}
public FormFile getTheFile() {
return this.theFile;
}
public String getNewFile() {
return newFile;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if (theAction != null) {
if (theFile == null) {
errors.add(errors.GLOBAL_ERROR, new ActionError("error", "没有指定上传文件"));
}
if (newFile == null & newFile.length() == 0) {
errors.add(errors.GLOBAL_ERROR, new ActionError("error", "没有指定保存文件路径"));
}
}
// verify
return errors;
}
}
package net.csdn.xdj.servlet.d050403;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.struts.upload.FormFile;
import java.io.*;
import net.csdn.xdj.model.d050403.Mark;
/**
* <p>上传处理,Action</p>
* <p>Title: community.csnd.net</p>
* <p>Description: java问题解答</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: 自由人</p>
* @author 许德建(simonxuluo)
* @version 1.0
*/
public class UploadImage
extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response) {
UploadAFB form = (UploadAFB) actionForm;
String theAction = form.getTheAction();
form.setTheAction("uploadImage");
if (theAction == null) {
theAction = "";
}
else if (theAction.equals("uploadImage")) {
FormFile file = form.getTheFile();
File newFile = new File(form.getNewFile());
if (file == null || newFile == null) {
return mapping.getInputForward();
}
try {
ByteArrayOutputStream baos = Mark.manipulateImage("许德建",
file.getFileData());
FileOutputStream fos = new FileOutputStream(newFile);
baos.writeTo(fos);
fos.close();
baos.close();
request.setAttribute("message", "上传成功");
return mapping.findForward("response");
}
catch (FileNotFoundException ex) {
// error handle
}
catch (IOException ex) {
// error handle
}
}
return mapping.getInputForward();
}
}
发表评论
-
Windows下手动安装PostgreSQL实践
2009-05-27 15:01 2636一、基本安装 1、下载postgresql-8.3. ... -
postgresql的安装
2009-05-27 11:05 5744postgresql是自由软件阵营中的一款很好的数据库软件,就 ... -
[转载]Struts2学习:配置篇之“0配置”和Annotation
2009-05-19 15:55 2977http://blog.csdn.net/CMTobby/ar ... -
struts2 标签 简介
2009-04-21 16:14 1629来源: http://blog.csdn.net/yul ... -
Eclipse下J2ME开发环境的配置
2008-11-04 20:09 9533配置Eclipse 就是要到sun的网站下载JDK, ... -
使用Struts2 annotation 的Type Conversion
2008-06-13 17:40 2224当需要在jsp页面传递一组对象到action的时候,普通的类型 ... -
在hibernate中实现oracle的自动增长
2008-04-30 16:42 4851根据hibernate的文档,有两种方式实现实体对象的主键自动 ... -
Linux 上安装 Subversion
2008-03-11 16:34 2380引用Subversion是一个自由/开源版本控制系统,具备强大 ... -
使用firebug获得省市区信息
2008-01-27 18:24 1245有些网页有省份和城市的连动信息,可以使用下面的javascri ... -
利用JavaMail收/发Gmail邮件(SSL)
2007-12-27 18:34 4076利用JavaMail收/发Gmail邮件(SSL) Gmai ... -
[jQuery]date-picker的使用
2007-12-06 08:49 2110使用这个插件要下载两个东西,一个是date-picker.js ... -
加图片水印,加文字水印
2007-11-16 14:05 1515这个是加 ... -
[转]玩转 Ubuntu:如何从源文件安装软件
2007-06-11 20:56 2572在班图中附带了丰富的 ... -
[转载]Linux下软件安装方法总结
2007-03-23 15:00 1776一、rpm包安装方式步骤: 1、找到相应的软件包,比如soft ... -
JAVA加密算法的实现用例
2007-01-20 21:28 3176对象 参数 algorithm 如:& ... -
手动安装ruby和rails
2007-01-06 15:26 2863进入软件开发行业也快一年了,很幸运一进入就加入了一个敏捷开发的 ...
相关推荐
在Spring Boot框架中实现图片上传并添加水印的功能,是一个常见的需求,特别是在开发涉及多媒体内容的Web应用时。下面将详细介绍这个过程,并涵盖相关的技术点。 首先,我们需要了解Spring Boot如何处理文件上传。...
在服务器端,处理图片并添加文字水印后保存,返回带有水印的新图像URL。在客户端,可以通过调整CSS样式,使用绝对定位在图片上动态添加文字水印,但这仅限于视觉效果,无法防止图片被复制。 **图片水印**与文字水印...
标题中的“用VB在图片上加上水印”指的是使用Visual Basic(VB)编程语言来创建一个应用程序,该程序能够将水印添加到图像文件中。VB是Microsoft开发的一种面向对象的编程工具,常用于快速开发桌面应用。在这个场景...
总结来说,"图片上传及预览+时间水印"的功能涉及到了前端的文件选择、预览,后端的文件接收,以及图片处理技术,如时间水印的添加。"photosupload"可能包含了实现这些功能的代码示例或者完整的解决方案,方便开发者...
C# 给图片加上文字或图片水印,通过使用GDI+ 给图片上加水印。实现了透明文字与透明图片水印。可设置水印位置。
在标题“上传图片加水印(图片水印和文字水印)”中,我们讨论的核心是如何在用户上传图片时自动添加水印。描述指出这涉及一个后台设置功能,允许管理员自定义水印的样式,这意味着系统具有一定的灵活性和可配置性。...
在.NET框架下,图片上传并添加水印的功能是常见的需求,尤其在网站开发、社交媒体平台或者内容管理系统中。本文将详细解析如何利用.NET技术实现这一功能,并探讨涉及的关键知识点。 首先,我们需要理解水印的基本...
很实用的一个图片上传得例子 图片上传:生成缩略图 加文字水印 图片水印 ...远程图片抓取(保存到本地)支持jpg、gif、bmp、png 图片抓取后自动以Auto+日期+原名称命名 输入远程图片地址(支持Html)
用户上传图片后,服务器端代码读取图片,添加水印,然后再返回给客户端。这样可以确保即使用户下载了图片,他们得到的也是带有水印的版本。 为了实现这一功能,开发者需要对C#语法、ASP.NET的HTTP请求处理流程以及...
为解决部分用户使用其他用户资源重复上传相同信息的问题(如房产图、汽车图、商品图等),您可在用户上传图片资源前先进行全盲水印提取,若提取到水印图信息则证明该图片来自之前已有资源,并进行相应操作(如提醒...
在Java编程中,实现图片上传并添加水印效果是一项常见的任务,这通常涉及到图像处理、图形用户界面(GUI)和文件I/O等多个方面。在这个项目中,我们将关注以下几个关键知识点: 1. **Java图像处理库**:Java标准库...
**jQuery图片自动添加水印插件详解** 在网页设计中,保护原创图片免受盗用是常见的需求,而实现这一目标的一种方法就是为图片添加水印。"jQuery图片自动添加水印插件"是一个非常实用的工具,它允许开发者轻松地在...
"图片上传服务器添加数字水印"这个主题涉及到的关键技术主要包括图片上传处理、服务器端编程(此处使用ASP.NET)以及数字水印的应用。 1. **图片上传处理**: 在Web应用中,图片上传功能是用户交互的重要部分,它...
在这个过程中,我们将探讨客户端(Android应用)如何处理图片并进行上传,以及服务端如何接收和处理这些请求。 **客户端部分:** 1. **图片选取与处理:** - 使用`Intent`启动系统相册,让用户选择图片。 - 图片...
- 将带有水印的图片保存到指定路径。 - 使用`Process`类启动Windows图片查看器以预览带有水印的图片。 ### 二、如何使用Windows图片查看器查看带有水印的图片 #### 1. 概述 Windows图片查看器是Windows系统自带的...
七牛云上传图片实现添加水印java代码测试类注意事项要先获取七牛的ak,sk以及空间水印样式
ASP上传加水印组件是一种用于ASP(Active Server Pages)应用程序的工具,主要用于处理用户上传的图像文件。这个组件不仅能够实现基本的文件上传功能,还能在上传后对图像添加水印,以保护版权或者增强品牌识别度。...
接着,使用`FileItem`接口解析上传的文件,将其保存到服务器。然后,可以调用Java的图片处理函数,对保存的图片进行操作。最后,返回处理后的图片路径或者直接显示在页面上。 在实际应用中,我们还需要考虑性能优化...
开发者可能会创建一个C#类库或API,接收图片上传请求,对图片进行水印添加和缩略图生成,然后将处理结果保存到远程服务器。这样的服务对于社交媒体平台、电商平台或内容管理系统等都是非常实用的。 综上所述,C#...
在IT行业中,对图片进行版权保护或品牌宣传时,经常需要用到图片加水印的技术。"图片批量加水印软件 数字水印"是一款专为此目的设计的工具,它能够帮助用户快速、便捷地为大量图片添加数字水印,有效地防止图片被...