SpringMVC结合Jcrop实现图片裁剪

网友投稿 210 2023-06-20


SpringMVC结合Jcrop实现图片裁剪

本文实例为大家分享了SpringMVC结合Jcrop实现图片裁剪的具体代码,供大家参考,具体内容如下

一、jsp页面:

method="post" enctype="multipart/form-data">

二、jcrop组件引用情况:

" type="text/css">

">

">

三、jcrop使用方法

四、后台代码:

@RequestMapping(value = "/uploadHeadImage")

public String uploadHeadImage(

HttpServletRequest request,

@RequestParam(value = "x") String x,

@RequestParam(value = "y") String y,

@RequestParam(value = "h") String h,

@RequestParam(value = "w") String w,

@RequestParam(value = "imgFile") MultipartFile imageFile

) throws Exception{

System.out.println("==========Start=============");

String realPath = request.getSession().getServletContext().getRealPath("/");

String resourcePath = "resources/uploadImages/";

if(imageFile!=null){

if(FileUploadUtil.allowUpload(imageFile.getContentType())){

String fileName = FileUploadUtil.rename(imageFile.getOriginalFilename());

int end = fileName.lastIndexOf(".");

String saveName = fileName.substring(0,end);

File dir = new File(realPath + resourcePath);

if(!dir.exists()){

dir.mkdirs();

}

File file = new File(dir,saveName+"_src.jpg");

imageFile.transferTo(file);

String srcImagePath = realPath + resourcePath + saveName;

int imageX = Integer.parseInt(x);

int imageY = Integer.parseInt(y);

int imageH = Integer.parseInt(h);

int imageW = Integer.parseInt(w);

//这里开始截取操作

System.out.println("==========imageCutStart=============");

ImageCut.imgCut(srcImagePath,imageX,imageY,imageW,imageH);

System.out.println("==========imageCutEnd=============");

}

}

return "user/uploadImg/test";

}

五、ImageCut.java工具类:

/**

* 截取图片

* @param srcImageFile 原图片地址

* @param x 截取时的x坐标

* @param y 截取时的y坐标

* @param desWidth 截取的宽度

* @param desHeight 截取的高度

*/

public static void imgCut(String srcImageFile, int x, int y, int desWidth,

int desHeight) {

try {

Image img;

ImageFilter cropFilter;

BufferedImage bi = ImageIO.read(new File(srcImageFile+"_src.jpg"));

int srcWidth = bi.getWidth();

int srcHeight = bi.getHeight();

if (srcWidth >= desWidth && srcHeight >= desHeight) {

Image image = bi.getScaledInstance(srcWidth, srcHeight,Image.SCALE_DEFAULT);

cropFilter = new CropImageFilter(x, y, desWidth, desHeight);

img = Toolkit.getDefaultToolkit().createImage(

new FilteredImageSource(image.getSource(), cropFilter));

BufferedImage tag = new BufferedImage(desWidth, desHeight,

BufferedImage.TYPE_INT_RGB);

Graphics g = tag.getGraphics();

g.drawImage(img, 0, 0, null);

g.dispose();

//输出文件

ImageIO.write(tag, "JPEG", new File(srcImageFile+"_cut.jpg"));

}

} catch (Exception e) {

e.printStackTrace();

}

}

六、jcrop的两种使用方式:

1、

jQuery('#cropbox').Jcrop({

onChange: showCoords,

onSelect: showCoords

});

2、

var api = $.Jcrop('#cropbox',{

onChange: showPreview,

onSelect: showPreview,

aspectRatio: 1

});


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java使用poi将word转换为html
下一篇:Java中使用Jedis操作Redis的示例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~