`
shuzheng5201314
  • 浏览: 203258 次
  • 来自: 北京
社区版块
存档分类
最新评论

java + jquery插件 实现截图功能

阅读更多

不多说,直接上代码

前台用到的是js插件,叫:imgareaselect,它可以传过来要裁剪图的宽+高+上边距+左边距,有这四个参数就能裁剪一个小图出来。

后台java代码如下:

package com.wodexiangce;

import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;

import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;

/** *//**
* 
*/
public class OperateImage ...{
       
    //===源图片路径名称如:c:\1.jpg 
    private String srcpath ;
         
    //===剪切图片存放路径名称.如:c:\2.jpg
    private String subpath ;
    
    //===剪切点x坐标
    private int x ;
    
    private int y ;    
      
    //===剪切点宽度
    private int width ;
     
    private int height ;
    
    public OperateImage()...{
            
    } 
    public OperateImage(int x,int y,int width,int height)...{
         this.x = x ;
         this.y = y ;
         this.width = width ;   
         this.height = height ;
    }
    
    /** *//** 
     * 对图片裁剪,并把裁剪完蛋新图片保存 。
     */
    public void cut() throws IOException...{ 
         
        FileInputStream is = null ;
        ImageInputStream iis =null ;
     
        try...{   
            //读取图片文件
            is = new FileInputStream(srcpath); 
            
            /**//*
             * 返回包含所有当前已注册 ImageReader 的 Iterator,这些 ImageReader 
             * 声称能够解码指定格式。 参数:formatName - 包含非正式格式名称 .
             *(例如 "jpeg" 或 "tiff")等 。 
             */
            Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName("jpg"); 
            ImageReader reader = it.next(); 
            //获取图片流 
            iis = ImageIO.createImageInputStream(is);
               
            /**//* 
             * <p>iis:读取源.true:只向前搜索 </p>.将它标记为 ‘只向前搜索’。
             * 此设置意味着包含在输入源中的图像将只按顺序读取,可能允许 reader
             * 避免缓存包含与以前已经读取的图像关联的数据的那些输入部分。
             */
            reader.setInput(iis,true) ;
            
            /**//* 
             * <p>描述如何对流进行解码的类<p>.用于指定如何在输入时从 Java Image I/O 
             * 框架的上下文中的流转换一幅图像或一组图像。用于特定图像格式的插件
             * 将从其 ImageReader 实现的 getDefaultReadParam 方法中返回 
             * ImageReadParam 的实例。 
             */
            ImageReadParam param = reader.getDefaultReadParam(); 
             
            /**//*
             * 图片裁剪区域。Rectangle 指定了坐标空间中的一个区域,通过 Rectangle 对象
             * 的左上顶点的坐标(x,y)、宽度和高度可以定义这个区域。 
             */ 
            Rectangle rect = new Rectangle(x, y, width, height); 
            
              
            //提供一个 BufferedImage,将其用作解码像素数据的目标。 
            param.setSourceRegion(rect);

            /**//*
             * 使用所提供的 ImageReadParam 读取通过索引 imageIndex 指定的对象,并将
             * 它作为一个完整的 BufferedImage 返回。
             */
            BufferedImage bi = reader.read(0,param);                
      
            //保存新图片 
            ImageIO.write(bi, "jpg", new File(subpath));     
        }
        
        finally...{
            if(is!=null)
               is.close() ;       
            if(iis!=null)
               iis.close(); 
        } 
        
         
     
    }

    public int getHeight() ...{
        return height;
    }

    public void setHeight(int height) ...{
        this.height = height;
    }

    public String getSrcpath() ...{
        return srcpath;
    }

    public void setSrcpath(String srcpath) ...{
        this.srcpath = srcpath;
    }

    public String getSubpath() ...{
        return subpath;
    }

    public void setSubpath(String subpath) ...{
        this.subpath = subpath;
    }

    public int getWidth() ...{
        return width;
    }

    public void setWidth(int width) ...{
        this.width = width;
    }

    public int getX() ...{
        return x;
    }

    public void setX(int x) ...{
        this.x = x;
    }

    public int getY() ...{
        return y;
    }

    public void setY(int y) ...{
        this.y = y;
    } 
    public static void main(String[] args)throws Exception...{
        
        String name = "d:\2005121210161588950.jpg"; 
        
        OperateImage o = new OperateImage(100,100,100,100);
        o.setSrcpath(name); 
        o.setSubpath("D:\2.jpg");
        o.cut() ; 
          
    }


}

 

  • js.rar (31 KB)
  • 下载次数: 179
分享到:
评论

相关推荐

    基于Servlet+JSP+Jquery+EL+Ajax的餐饮管理系统源码.zip

    3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Servlet+JSP+Jquery+EL+Ajax的餐饮管理系统源码.zip基于Servlet+JSP+Jquery+EL+Ajax的餐饮管理系统源码.zip基于...

    SSH+JQuery插件+Mysql

    同时,JQuery插件丰富了网页的功能,例如数据表格排序、分页、弹窗等,这些插件往往可以极大地提高用户体验。 Mysql是一个流行的关系型数据库管理系统,它以速度快、稳定性好和易于使用著称。在SSH框架中,Mysql...

    java+jsp+ajax+jst+jquery实例

    jQuery的简单插件开发可能涉及到扩展其核心功能,例如表单验证、轮播图、日期选择器等。在这个实例中,jQuery可能被用来增强页面的交互性,如通过Ajax调用后端服务,处理返回的数据,并更新页面元素。 综上所述,这...

    精通java+jQuery源码

    6. **插件开发**:理解jQuery插件的工作原理,如何创建自己的插件。 7. **jQuery与其他库的集成**:如Bootstrap、AngularJS等,提升前端开发效率。 通过书中实例,读者将有机会实践这些理论知识,加深理解,并能够...

    网站模板(DIV+CSS+JQUERY)

    jQuery还提供了插件生态系统,使得开发者能够轻松添加复杂的功能,如日期选择器、表单验证等。 **Java**虽然在标签中提及,但在描述中没有直接提到。Java通常用于服务器端编程,为Web应用提供后端逻辑。如果这个...

    Struts2 + jQuery+JSON 实现ajax

    通过以上步骤,我们可以利用Struts2框架结合jQuery与JSON轻松地实现Ajax功能。需要注意的是,在实际应用中可能还需要考虑更多的因素,比如安全性、性能优化等。此外,随着技术的发展,现代Web开发中也出现了更多先进...

    js+jquery+java实现的头像上传和裁剪

    jQuery插件如jQuery Cropper(https://fengyuanchen.github.io/cropperjs/)可以提供图像裁剪的功能。这个插件允许用户在预览的图片上选择一个矩形区域,然后保存选定的部分作为新的图像。它支持多种裁剪比例、旋转...

    java+json+jquery经典实例

    在IT行业中,Java、JSON和jQuery是三种非常重要的技术,它们在Web开发中扮演着核心角色。本实例集合提供了一个基于这些技术的实践项目,旨在帮助初学者快速掌握它们的基本用法和相互间的协同工作。 首先,让我们...

    ( Struts2+JQuery插件的使用

    本文将详细介绍如何在Struts2项目中集成jQuery插件,并通过一个简单的示例来演示具体的实现步骤。 #### 二、Struts2简介 Struts2是一个基于MVC设计模式的Java Web应用框架,它简化了Java Web应用的开发过程,提供...

    struts2+json+jquery实现ajax数据的存取

    在现代Web开发中,异步数据传输是提升用户体验的关键因素之一。"Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型...而文件名"jqueryTest2"可能代表了一个包含jQuery示例代码的测试项目,用于演示这一功能的实现。

    Struts2+JSON+JQuery实现简单的验证

    在本教程中,我们将探讨如何利用这些技术实现一个简单的验证功能。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了一种组织应用程序结构的方式,简化了Java Servlet和JSP的...

    struts2.1.8+json+jquery1.3实现ajax

    总结起来,这个项目结合了Struts2的Action和JSON支持,利用jQuery的Ajax功能,实现了客户端与服务器之间的数据交互,达到了动态更新页面的目的。对于Web开发者来说,了解这种技术组合有助于提高开发效率和用户体验。

    基于 java+SSM+JSP+jquery+bootstrap学生信息管理系统. 毕业设计完整代码

    这是一个基于Java技术栈的毕业设计项目,主要使用了Spring、SpringMVC和MyBatis(SSM)框架,结合JSP、jQuery和Bootstrap来构建一个高效、用户友好的学生信息管理系统。下面将详细介绍这个系统的核心技术和实现细节...

    java结合jquery插件实现无限滚动自动翻页源代码.

    综上所述,"java结合jquery插件实现无限滚动自动翻页源代码"这个项目涵盖了前端和后端的多种技术,涉及到了用户界面的交互优化、数据加载的效率提升以及多设备适配等多个方面。通过学习和实践这样的项目,开发者可以...

    java源代码,主要是jquery插件的利用

    总结来说,"java源代码,主要是jquery插件的利用"意味着在Java后端项目中,前端部分通过jQuery和其插件来实现用户交互和动态更新,同时与Java后端进行数据交换。这种结合充分利用了Java的强大后端处理能力和jQuery的...

    Struts2+jQuery(不用JSON)实现局部刷新

    在这个“Struts2+jQuery实现局部刷新”的主题中,我们将探讨如何利用这两者的优势来实现页面的无刷新更新。 1. **Struts2框架介绍**: Struts2是一个基于MVC设计模式的Java Web框架,它提供了良好的结构和可扩展性...

    s2sh+freemarker+jquery+jquery-treeview 无限级树形菜单.rar

    本项目“s2sh+freemarker+jquery+jquery-treeview 无限级树形菜单”就是这样一个解决方案,它整合了多种技术来实现这一功能。 首先,我们来看“s2sh”。这是Struts2、Spring和Hibernate三者的简称,它们分别是MVC...

    plupload+jquery+java多文件上传下载功能

    标题中的“plupload+jquery+java多文件上传下载功能”是指使用plupload插件结合jQuery和Java技术,实现一个能够支持多文件上传和下载(包括单个文件直接下载及多个文件打包下载)的功能。这个功能通常应用于需要大量...

Global site tag (gtag.js) - Google Analytics