`
56858752
  • 浏览: 61421 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Jquery Jcrop 插件java的使用方法 包括图片保存类

    博客分类:
  • JAVA
阅读更多

1。下载最新的Jcrop文件。

 

http://deepliquid.com/content/Jcrop.html

 

里面有demo文件,可以直接看.但要实现剪切功能还需要类来支持。默认的是PHP的。

 

2。Utils类

 

public class Utils {

	public static String getExtension(File f) { 
        return (f != null) ? getExtension(f.getName()) : ""; 
    } 

    public static String getExtension(String filename) { 
        return getExtension(filename, ""); 
    } 

    public static String getExtension(String filename, String defExt) { 
        if ((filename != null) && (filename.length() > 0)) { 
            int i = filename.lastIndexOf('.'); 

            if ((i >-1) && (i < (filename.length() - 1))) { 
                return filename.substring(i + 1); 
            } 
        } 
        return defExt; 
    } 

    public static String trimExtension(String filename) { 
        if ((filename != null) && (filename.length() > 0)) { 
            int i = filename.lastIndexOf('.'); 
            if ((i >-1) && (i < (filename.length()))) { 
                return filename.substring(0, i); 
            } 
        } 
        return filename; 
    } 
}

 这个类主要是用来获取文件的扩展名。

 

3。SaveImges类

public class SaveImage{
 /**  
  * 保存图片  
  * @param img       原图路径  
  * @param dest      目标图路径  
  * @param top       选择框的左边y坐标  
  * @param left      选择框的左边x坐标  
  * @param width     选择框宽度  
  * @param height    选择框高度  
  * @return  
  * @throws IOException  
  */  
 public static boolean saveImage(File img,    
            String dest,    
            int top,    
            int left,    
            int width,    
            int height) throws IOException {   
  File fileDest = new File(dest);   
  if(!fileDest.getParentFile().exists())   
      fileDest.getParentFile().mkdirs();   
  String ext = Utils.getExtension(dest).toLowerCase();   
  BufferedImage bi = (BufferedImage)ImageIO.read(img);   
  height = Math.min(height, bi.getHeight());   
  width = Math.min(width, bi.getWidth());   
  if(height <= 0) height = bi.getHeight();   
  if(width <= 0) width = bi.getWidth();   
  top = Math.min(Math.max(0, top), bi.getHeight()-height);   
  left = Math.min(Math.max(0, left), bi.getWidth()-width);   
     
  BufferedImage bi_cropper = bi.getSubimage(left, top, width, height);   
  return ImageIO.write(bi_cropper, ext.equals("png")?"png":"jpeg", fileDest);   
 }  
 
 public static void main(String[] args) {
  try {
   System.out.println(saveImage(new File("E:\\JavaWork\\pic\\WebRoot\\css\\flowers.jpg"),"E:\\JavaWork\\pic\\WebRoot\\css\\flowers1.jpg",106,87,289,217));
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

 

这里的top、left、width、height都可以直接用Jcrop里获取到。 在Jcrop的“Basic Handler”这个demo里面,相应的X1、Y1、W、H这四个参数,用request可以得到这些值。

分享到:
评论
4 楼 tianlang952 2013-10-23  
int srcWidth = bi.getWidth(); // 源图宽度
int srcHeight = bi.getHeight(); // 源图高度

int x1 = x * srcWidth / 400;
int y1 = y * srcHeight / 300;
int w1 = w * srcWidth / 400;
int h1 = h * srcHeight / 300;

比例 缩放后的 操作。

的确,
BufferedImage bi_cropper = bi.getSubimage(left, top, width, height);

写错了
3 楼 zyywolf 2013-07-05  
ms_lzt 写道
问一个问题,,jcrop是前台获取图片选择的区域坐标对吧,
例子的img是602*400的,,假如我把img控件大小控制了一下,变成了301*200,
那么我想jcrop获取区域坐标应该就不对了吧。

因为要是用一个1024*1024的大图片,我想做项目的时候都需要对图片显示的大小控制一下吧。
不知道楼主有啥好的办法

请问如果img或者其他的标签影响到了图片显示的不是原大小的话,有没有解决办法?
2 楼 gx0803 2013-05-21  
很老的帖子了,不过依然感谢博主提供的思路,实践成功了。不过请注意,有个地方写错了。
BufferedImage bi_cropper = bi.getSubimage(left, top, width, height);
其中left和top两个参数写反了,导致保存后的裁剪部分与截取部分并不一致,这一点误导了大家     
1 楼 ms_lzt 2013-04-12  
问一个问题,,jcrop是前台获取图片选择的区域坐标对吧,
例子的img是602*400的,,假如我把img控件大小控制了一下,变成了301*200,
那么我想jcrop获取区域坐标应该就不对了吧。

因为要是用一个1024*1024的大图片,我想做项目的时候都需要对图片显示的大小控制一下吧。
不知道楼主有啥好的办法

相关推荐

    jquery+Jcrop+servlet图片上传裁剪选择保存实例

    在本文中,我们将深入探讨如何使用jQuery、Jcrop和Servlet技术来实现一个功能完善的图片上传、裁剪和保存实例。这个实例将涵盖前端用户界面的交互、图片处理以及后端服务器的数据交换,帮助开发者理解这一过程中的...

    jQuery Jcrop图像裁剪的插件结合java后台实现图片裁剪的功能

    jQuery Jcrop是一个在前端广泛应用的JavaScript插件,专门用于实现图像裁剪功能。它与后端技术如Java相结合,能够为Web应用提供完整的图片处理解决方案。Jcrop的强大之处在于其简单易用的API,允许开发者轻松地将...

    jQuery Jcrop 实现图像裁剪Demo

    下面将详细阐述jQuery Jcrop的使用方法、核心特性以及如何结合Java后端进行图像处理。 首先,要使用jQuery Jcrop,你需要确保已经引入了jQuery库和Jcrop的JavaScript及CSS文件。Jcrop的下载通常包括一个压缩包,...

    jsp+jquery(jcrop)实现的图片预览剪切上传

    文件名`ImageUpload`可能指的是项目的主文件或者一个包含所有必要资源的文件夹,这其中包括`jsp`页面、`jQuery`库、`jCrop`插件的JavaScript和CSS文件,以及可能的图片示例或配置文件。开发者可以通过这个项目学习...

    Jcrop插件对图片进行裁剪示例

    在本示例中,我们将深入探讨如何结合Jcrop与Java技术,实现一个完整的图片裁剪功能。 首先,Jcrop的核心在于它的交互性和灵活性。用户可以通过鼠标拖动来选择图片上的任意部分,其选定区域可以自适应图像大小,支持...

    jquery.Jcrop结合JAVA后台实现图片裁剪上传实例

    在本例中,使用了jQuery、springmvc框架和jcrop插件。jQuery是一个快速且小巧的JavaScript库,它通过减少代码量以及简化HTML文档遍历和事件处理、动画和Ajax交互等操作来简化JavaScript编程。springmvc是Spring框架...

    java+jq+jcrop缩放裁剪上传图片

    这个"java+jq+jcrop缩放裁剪上传图片"的主题涵盖了三个关键部分:Java后端处理、jQuery(jq)前端交互以及Jcrop图像裁剪库的使用。下面将详细解释这三个方面的知识点。 首先,让我们来看看前端部分。jQuery(jq)是...

    struts2加jquery加Jcrop实现头像剪切上传项目版(添加jar包部署就可以运行)

    4. **CSS和JavaScript**:包括JQuery库和JCrop插件,以及自定义的样式和交互脚本。 5. **图片处理服务**:在后端,可能有一个服务或者方法来接收裁剪信息,根据这些信息裁剪图片,并保存为头像。 在部署项目时,...

    图片的截取上传java+Jcrop

    本教程将详细介绍如何结合Java和Jcrop插件实现这一功能。Jcrop是一款强大的JavaScript图像裁剪工具,它允许用户在前端选择并裁剪图像,然后将裁剪参数发送到后端,由后端程序进行实际的图片处理。 首先,我们需要...

    头像剪切上传jquery+java源码

    头像的剪切功能可能采用了jQuery的插件,如`cropper.js`或`jcrop`,这些插件能够提供图像的选取和裁剪功能,允许用户自由调整选取区域,然后将裁剪后的图像数据发送到服务器。 在`uploadimage.jsp`页面中,HTML元素...

    jquery 图片剪切

    本话题主要围绕jQuery库中的Jcrop插件,结合后台Java进行详细讨论。 jQuery是一个轻量级、高性能的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。在图片剪切场景中,jQuery提供了一个强大的...

    jcrop v0.9.12

    本文将深入探讨Jcrop的核心特性、使用方法以及如何将其整合到不同后端环境中,如PHP和Java。 首先,Jcrop的核心功能在于其图像选区操作。用户可以通过鼠标轻松地在图片上划定需要裁剪的区域,同时提供实时预览,...

    java实现上传图片任意裁剪头像保存头像(java,jsp,jQuery)

    该资源是自己做的(后台是java,页面是jsp,用了Jcrop插件裁剪图片),能实现上传本地图片,预览在页面上并根据用户的需求进行任意大小的裁剪,最后将裁剪后的图片进行展示。整个过程会把图片的名字插入数据库字段;...

    Jsp + JCrop 上传头像预览并剪切

    "Jsp + JCrop 上传头像预览并剪切"是一个基于Java服务器页面(JSP)和JCrop插件的解决方案,它允许用户上传头像并在上传前进行预览和剪裁,从而提供更优质的交互体验。以下将详细介绍这一技术实现的关键知识点。 1....

    Jcrop头像截取

    Jcrop是基于jQuery的一个开源插件,它的主要目标是为HTML页面上的图像提供可交互的裁剪功能。通过Jcrop,用户可以自由地拖动选择框,调整要裁剪的区域,并实时预览裁剪效果。这极大地提升了用户体验,使得用户可以在...

    [J2EE 修改头像]使用commons-fileupload,uploadify和Jcrop实现修改头像

    服务器接收到裁剪坐标后,可以利用Java的ImageIO和BufferedImage类来处理图片,按照指定的坐标和比例进行裁剪。完成后,更新数据库中用户的头像信息,并返回成功消息。 以上就是使用Apache Commons FileUpload、...

    java二维码生成(带中间logo)

    5. **使用myjcrop**:压缩包中的`myjcrop`文件可能是JQuery Jcrop插件,它是一个JavaScript库,用于图像裁剪。在网页端,你可以使用Jcrop配合后端生成的二维码图片,让用户自定义Logo的裁剪区域,从而实现更个性化的...

    jquery fileupload带进度条的文件上传

    jQuery File Upload是一个强大的插件,它提供了丰富的功能,包括多文件选择、文件预览、进度条显示、取消上传等,极大地提升了用户体验。本项目将重点介绍如何使用jQuery File Upload实现带进度条的文件上传,并结合...

    java上传图片并裁剪

    Jcrop是一个流行的jQuery插件,用于提供图像选择功能。用户在前端选定裁剪区域后,会将裁剪的坐标(通常包括左上角和右下角的坐标)发送回服务器。服务器接收到这些坐标后,会用它们来裁剪图片。 在Java中,我们...

Global site tag (gtag.js) - Google Analytics