Jquery Jcrop 插件java的使用方法 包括图片保存类
2012-10-27 11:50
666 查看
1。下载最新的Jcrop文件。
http://deepliquid.com/content/Jcrop.html
里面有demo文件,可以直接看.但要实现剪切功能还需要类来支持。默认的是PHP的。
2。Utils类
Java代码
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类
Java代码
public class SaveImage{
Java代码
/**
* 保存图片
* @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可以得到这些值。
http://deepliquid.com/content/Jcrop.html
里面有demo文件,可以直接看.但要实现剪切功能还需要类来支持。默认的是PHP的。
2。Utils类
Java代码
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类
Java代码
public class SaveImage{
Java代码
/**
* 保存图片
* @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 插件 lazyload.js 使用方法详解
- 缓冲加载图片的 jQuery 插件 lazyload.js 使用方法详解
- jQuery jcrop插件截图使用方法
- 缓冲加载图片的 jQuery 插件 lazyload.js 使用方法详解
- 缓冲加载图片的jQuery插件lazyload.js 使用方法详解
- Jquery图片延迟加载插件jquery.lazyload.js的使用方法
- 简单jquery图片预览插件的使用方法
- FireFox中使用JQuery的ajaxfileupload插件返回JSON格式数据提示保存的解决方法。
- 缓冲加载图片的 jQuery 插件 lazyload.js 使用方法详解
- jquery插件lazyload.js延迟加载图片的使用方法
- jquery插件lazyload.js延迟加载图片的使用方法
- jQuery jcrop插件截图使用方法
- 缓冲加载图片的 jQuery 插件 lazyload.js 使用方法详解
- 缓冲加载图片的 jQuery 插件 lazyload.js 使用方法详解
- jQuery jcrop插件截图使用方法
- Jquery图片延迟加载插件jquery.lazyload.js的使用方法
- jQuery jcrop插件截图使用方法
- 缓冲加载图片的 jQuery 插件 lazyload.js 使用方法详解
- jQuery图片播放插件ColorBox使用方法
- jQuery图片播放插件Fancybox使用方法