`
liyanboss
  • 浏览: 141796 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

如何把客户端上传的图片 先 加上水印再保存到服务端??????

阅读更多
最近对图片加上水印,有兴趣,找到一个牛人写的帖子,转载到这里,供大家分享!!!!!!


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();  
      }  
  }  
 



分享到:
评论

相关推荐

    springboot实现上传图片添加水印

    在Spring Boot框架中实现图片上传并添加水印的功能,是一个常见的需求,特别是在开发涉及多媒体内容的Web应用时。下面将详细介绍这个过程,并涵盖相关的技术点。 首先,我们需要了解Spring Boot如何处理文件上传。...

    上传 预览 文字水印 图片水印

    在服务器端,处理图片并添加文字水印后保存,返回带有水印的新图像URL。在客户端,可以通过调整CSS样式,使用绝对定位在图片上动态添加文字水印,但这仅限于视觉效果,无法防止图片被复制。 **图片水印**与文字水印...

    用VB在图片上加上水印

    标题中的“用VB在图片上加上水印”指的是使用Visual Basic(VB)编程语言来创建一个应用程序,该程序能够将水印添加到图像文件中。VB是Microsoft开发的一种面向对象的编程工具,常用于快速开发桌面应用。在这个场景...

    图片上传及预览+时间水印

    总结来说,"图片上传及预览+时间水印"的功能涉及到了前端的文件选择、预览,后端的文件接收,以及图片处理技术,如时间水印的添加。"photosupload"可能包含了实现这些功能的代码示例或者完整的解决方案,方便开发者...

    C# 给图片加上文字或图片水印

    C# 给图片加上文字或图片水印,通过使用GDI+ 给图片上加水印。实现了透明文字与透明图片水印。可设置水印位置。

    上传图片加水印(图片水印和文字水印)

    在标题“上传图片加水印(图片水印和文字水印)”中,我们讨论的核心是如何在用户上传图片时自动添加水印。描述指出这涉及一个后台设置功能,允许管理员自定义水印的样式,这意味着系统具有一定的灵活性和可配置性。...

    图片上传加上水印 源码

    在.NET框架下,图片上传并添加水印的功能是常见的需求,尤其在网站开发、社交媒体平台或者内容管理系统中。本文将详细解析如何利用.NET技术实现这一功能,并探讨涉及的关键知识点。 首先,我们需要理解水印的基本...

    51aspx图片上传(加水印、生成缩略图、远程图片保存)源码

    很实用的一个图片上传得例子 图片上传:生成缩略图 加文字水印 图片水印 ...远程图片抓取(保存到本地)支持jpg、gif、bmp、png 图片抓取后自动以Auto+日期+原名称命名 输入远程图片地址(支持Html)

    图片加数字水印和图片水印

    用户上传图片后,服务器端代码读取图片,添加水印,然后再返回给客户端。这样可以确保即使用户下载了图片,他们得到的也是带有水印的版本。 为了实现这一功能,开发者需要对C#语法、ASP.NET的HTTP请求处理流程以及...

    图片加盲水印小工具2.0一款可以添加不损坏图片原信息添加看不见的水印保护图片版权软件内容防搬运必备.exe

    为解决部分用户使用其他用户资源重复上传相同信息的问题(如房产图、汽车图、商品图等),您可在用户上传图片资源前先进行全盲水印提取,若提取到水印图信息则证明该图片来自之前已有资源,并进行相应操作(如提醒...

    java实现图片上传并添加水印效果(文字水印,蒙版,logo图片),自动进行文字大小行数位置匹配 ,文字自动换行

    在Java编程中,实现图片上传并添加水印效果是一项常见的任务,这通常涉及到图像处理、图形用户界面(GUI)和文件I/O等多个方面。在这个项目中,我们将关注以下几个关键知识点: 1. **Java图像处理库**:Java标准库...

    jQuery图片自动添加水印插件.zip

    **jQuery图片自动添加水印插件详解** 在网页设计中,保护原创图片免受盗用是常见的需求,而实现这一目标的一种方法就是为图片添加水印。"jQuery图片自动添加水印插件"是一个非常实用的工具,它允许开发者轻松地在...

    图片上传服务器 添加数字水印

    "图片上传服务器添加数字水印"这个主题涉及到的关键技术主要包括图片上传处理、服务器端编程(此处使用ASP.NET)以及数字水印的应用。 1. **图片上传处理**: 在Web应用中,图片上传功能是用户交互的重要部分,它...

    Android向服务器发送多张图片(客户端和服务端)

    在这个过程中,我们将探讨客户端(Android应用)如何处理图片并进行上传,以及服务端如何接收和处理这些请求。 **客户端部分:** 1. **图片选取与处理:** - 使用`Intent`启动系统相册,让用户选择图片。 - 图片...

    产生图片水印和图片加水印文字后,用Window图片查看器查看

    - 将带有水印的图片保存到指定路径。 - 使用`Process`类启动Windows图片查看器以预览带有水印的图片。 ### 二、如何使用Windows图片查看器查看带有水印的图片 #### 1. 概述 Windows图片查看器是Windows系统自带的...

    七牛云上传图片添加水印

    七牛云上传图片实现添加水印java代码测试类注意事项要先获取七牛的ak,sk以及空间水印样式

    asp上传加水印组件

    ASP上传加水印组件是一种用于ASP(Active Server Pages)应用程序的工具,主要用于处理用户上传的图像文件。这个组件不仅能够实现基本的文件上传功能,还能在上传后对图像添加水印,以保护版权或者增强品牌识别度。...

    java 图片水印 改变图片大小

    接着,使用`FileItem`接口解析上传的文件,将其保存到服务器。然后,可以调用Java的图片处理函数,对保存的图片进行操作。最后,返回处理后的图片路径或者直接显示在页面上。 在实际应用中,我们还需要考虑性能优化...

    图片上传(水印、缩略图、远程保存)源码

    开发者可能会创建一个C#类库或API,接收图片上传请求,对图片进行水印添加和缩略图生成,然后将处理结果保存到远程服务器。这样的服务对于社交媒体平台、电商平台或内容管理系统等都是非常实用的。 综上所述,C#...

    图片批量加水印软件 数字水印

    在IT行业中,对图片进行版权保护或品牌宣传时,经常需要用到图片加水印的技术。"图片批量加水印软件 数字水印"是一款专为此目的设计的工具,它能够帮助用户快速、便捷地为大量图片添加数字水印,有效地防止图片被...

Global site tag (gtag.js) - Google Analytics