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可以得到这些值。
分享到:
相关推荐
在本文中,我们将深入探讨如何使用jQuery、Jcrop和Servlet技术来实现一个功能完善的图片上传、裁剪和保存实例。这个实例将涵盖前端用户界面的交互、图片处理以及后端服务器的数据交换,帮助开发者理解这一过程中的...
jQuery Jcrop是一个在前端广泛应用的JavaScript插件,专门用于实现图像裁剪功能。它与后端技术如Java相结合,能够为Web应用提供完整的图片处理解决方案。Jcrop的强大之处在于其简单易用的API,允许开发者轻松地将...
下面将详细阐述jQuery Jcrop的使用方法、核心特性以及如何结合Java后端进行图像处理。 首先,要使用jQuery Jcrop,你需要确保已经引入了jQuery库和Jcrop的JavaScript及CSS文件。Jcrop的下载通常包括一个压缩包,...
文件名`ImageUpload`可能指的是项目的主文件或者一个包含所有必要资源的文件夹,这其中包括`jsp`页面、`jQuery`库、`jCrop`插件的JavaScript和CSS文件,以及可能的图片示例或配置文件。开发者可以通过这个项目学习...
在本示例中,我们将深入探讨如何结合Jcrop与Java技术,实现一个完整的图片裁剪功能。 首先,Jcrop的核心在于它的交互性和灵活性。用户可以通过鼠标拖动来选择图片上的任意部分,其选定区域可以自适应图像大小,支持...
在本例中,使用了jQuery、springmvc框架和jcrop插件。jQuery是一个快速且小巧的JavaScript库,它通过减少代码量以及简化HTML文档遍历和事件处理、动画和Ajax交互等操作来简化JavaScript编程。springmvc是Spring框架...
这个"java+jq+jcrop缩放裁剪上传图片"的主题涵盖了三个关键部分:Java后端处理、jQuery(jq)前端交互以及Jcrop图像裁剪库的使用。下面将详细解释这三个方面的知识点。 首先,让我们来看看前端部分。jQuery(jq)是...
4. **CSS和JavaScript**:包括JQuery库和JCrop插件,以及自定义的样式和交互脚本。 5. **图片处理服务**:在后端,可能有一个服务或者方法来接收裁剪信息,根据这些信息裁剪图片,并保存为头像。 在部署项目时,...
本教程将详细介绍如何结合Java和Jcrop插件实现这一功能。Jcrop是一款强大的JavaScript图像裁剪工具,它允许用户在前端选择并裁剪图像,然后将裁剪参数发送到后端,由后端程序进行实际的图片处理。 首先,我们需要...
头像的剪切功能可能采用了jQuery的插件,如`cropper.js`或`jcrop`,这些插件能够提供图像的选取和裁剪功能,允许用户自由调整选取区域,然后将裁剪后的图像数据发送到服务器。 在`uploadimage.jsp`页面中,HTML元素...
本话题主要围绕jQuery库中的Jcrop插件,结合后台Java进行详细讨论。 jQuery是一个轻量级、高性能的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。在图片剪切场景中,jQuery提供了一个强大的...
本文将深入探讨Jcrop的核心特性、使用方法以及如何将其整合到不同后端环境中,如PHP和Java。 首先,Jcrop的核心功能在于其图像选区操作。用户可以通过鼠标轻松地在图片上划定需要裁剪的区域,同时提供实时预览,...
该资源是自己做的(后台是java,页面是jsp,用了Jcrop插件裁剪图片),能实现上传本地图片,预览在页面上并根据用户的需求进行任意大小的裁剪,最后将裁剪后的图片进行展示。整个过程会把图片的名字插入数据库字段;...
"Jsp + JCrop 上传头像预览并剪切"是一个基于Java服务器页面(JSP)和JCrop插件的解决方案,它允许用户上传头像并在上传前进行预览和剪裁,从而提供更优质的交互体验。以下将详细介绍这一技术实现的关键知识点。 1....
Jcrop是基于jQuery的一个开源插件,它的主要目标是为HTML页面上的图像提供可交互的裁剪功能。通过Jcrop,用户可以自由地拖动选择框,调整要裁剪的区域,并实时预览裁剪效果。这极大地提升了用户体验,使得用户可以在...
服务器接收到裁剪坐标后,可以利用Java的ImageIO和BufferedImage类来处理图片,按照指定的坐标和比例进行裁剪。完成后,更新数据库中用户的头像信息,并返回成功消息。 以上就是使用Apache Commons FileUpload、...
5. **使用myjcrop**:压缩包中的`myjcrop`文件可能是JQuery Jcrop插件,它是一个JavaScript库,用于图像裁剪。在网页端,你可以使用Jcrop配合后端生成的二维码图片,让用户自定义Logo的裁剪区域,从而实现更个性化的...
jQuery File Upload是一个强大的插件,它提供了丰富的功能,包括多文件选择、文件预览、进度条显示、取消上传等,极大地提升了用户体验。本项目将重点介绍如何使用jQuery File Upload实现带进度条的文件上传,并结合...
Jcrop是一个流行的jQuery插件,用于提供图像选择功能。用户在前端选定裁剪区域后,会将裁剪的坐标(通常包括左上角和右下角的坐标)发送回服务器。服务器接收到这些坐标后,会用它们来裁剪图片。 在Java中,我们...